1/* Generated automatically by the program `genmatch' from
2 a IL pattern matching and simplification description. */
3
4#include "generic-match-head.c"
5
6bool
7tree_power_of_two_cand (tree t, tree *res_ops)
8{
9 tree type = TREE_TYPE (t);
10 if (TREE_SIDE_EFFECTS (t)) return false;
11 switch (TREE_CODE (t))
12 {
13 case INTEGER_CST:
14 {
15 {
16/* #line 365 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17 tree captures[1] ATTRIBUTE_UNUSED = { t };
18 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:365, %s:%d\n", __FILE__, __LINE__);
19 res_ops[0] = captures[0];
20 return true;
21 }
22 break;
23 }
24 case LSHIFT_EXPR:
25 {
26 tree op0 = TREE_OPERAND (t, 0);
27 tree op1 = TREE_OPERAND (t, 1);
28 switch (TREE_CODE (op0))
29 {
30 case INTEGER_CST:
31 {
32 {
33/* #line 367 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
35 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:367, %s:%d\n", __FILE__, __LINE__);
36 res_ops[0] = captures[0];
37 return true;
38 }
39 break;
40 }
41 default:;
42 }
43 break;
44 }
45 default:;
46 }
47 return false;
48}
49
50bool
51tree_negate_expr_p (tree t)
52{
53 tree type = TREE_TYPE (t);
54 if (TREE_SIDE_EFFECTS (t)) return false;
55 switch (TREE_CODE (t))
56 {
57 case INTEGER_CST:
58 {
59 {
60/* #line 838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
61/* #line 838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
62 if ((INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)) || (!TYPE_OVERFLOW_SANITIZED (type) && may_negate_without_overflow_p (t)))
63 {
64 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:837, %s:%d\n", __FILE__, __LINE__);
65 return true;
66 }
67 }
68 break;
69 }
70 case FIXED_CST:
71 {
72 {
73/* #line 843 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
74 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:843, %s:%d\n", __FILE__, __LINE__);
75 return true;
76 }
77 break;
78 }
79 case NEGATE_EXPR:
80 {
81 tree op0 = TREE_OPERAND (t, 0);
82 {
83/* #line 846 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
84 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
85/* #line 846 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
86 if (!TYPE_OVERFLOW_SANITIZED (type))
87 {
88 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:845, %s:%d\n", __FILE__, __LINE__);
89 return true;
90 }
91 }
92 break;
93 }
94 case REAL_CST:
95 {
96 {
97/* #line 849 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
98/* #line 849 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
99 if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t)))
100 {
101 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:848, %s:%d\n", __FILE__, __LINE__);
102 return true;
103 }
104 }
105 break;
106 }
107 case VECTOR_CST:
108 {
109 {
110/* #line 854 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
111/* #line 854 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
112 if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type))
113 {
114 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:853, %s:%d\n", __FILE__, __LINE__);
115 return true;
116 }
117 }
118 break;
119 }
120 default:;
121 }
122 return false;
123}
124
125bool
126tree_truth_valued_p (tree t)
127{
128 tree type = TREE_TYPE (t);
129 if (TREE_SIDE_EFFECTS (t)) return false;
130 {
131/* #line 934 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
132 tree captures[1] ATTRIBUTE_UNUSED = { t };
133/* #line 934 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
134 if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
135 {
136 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:933, %s:%d\n", __FILE__, __LINE__);
137 return true;
138 }
139 }
140 switch (TREE_CODE (t))
141 {
142 case LT_EXPR:
143 {
144 tree op0 = TREE_OPERAND (t, 0);
145 tree op1 = TREE_OPERAND (t, 1);
146 {
147/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
148 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
149 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
150 return true;
151 }
152 break;
153 }
154 case LE_EXPR:
155 {
156 tree op0 = TREE_OPERAND (t, 0);
157 tree op1 = TREE_OPERAND (t, 1);
158 {
159/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
160 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
161 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
162 return true;
163 }
164 break;
165 }
166 case EQ_EXPR:
167 {
168 tree op0 = TREE_OPERAND (t, 0);
169 tree op1 = TREE_OPERAND (t, 1);
170 {
171/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
172 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
173 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
174 return true;
175 }
176 break;
177 }
178 case NE_EXPR:
179 {
180 tree op0 = TREE_OPERAND (t, 0);
181 tree op1 = TREE_OPERAND (t, 1);
182 {
183/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
184 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
185 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
186 return true;
187 }
188 break;
189 }
190 case GE_EXPR:
191 {
192 tree op0 = TREE_OPERAND (t, 0);
193 tree op1 = TREE_OPERAND (t, 1);
194 {
195/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
196 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
197 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
198 return true;
199 }
200 break;
201 }
202 case GT_EXPR:
203 {
204 tree op0 = TREE_OPERAND (t, 0);
205 tree op1 = TREE_OPERAND (t, 1);
206 {
207/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
208 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
209 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
210 return true;
211 }
212 break;
213 }
214 case UNORDERED_EXPR:
215 {
216 tree op0 = TREE_OPERAND (t, 0);
217 tree op1 = TREE_OPERAND (t, 1);
218 {
219/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
220 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
221 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
222 return true;
223 }
224 break;
225 }
226 case ORDERED_EXPR:
227 {
228 tree op0 = TREE_OPERAND (t, 0);
229 tree op1 = TREE_OPERAND (t, 1);
230 {
231/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
232 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
233 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
234 return true;
235 }
236 break;
237 }
238 case UNLT_EXPR:
239 {
240 tree op0 = TREE_OPERAND (t, 0);
241 tree op1 = TREE_OPERAND (t, 1);
242 {
243/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
244 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
245 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
246 return true;
247 }
248 break;
249 }
250 case UNLE_EXPR:
251 {
252 tree op0 = TREE_OPERAND (t, 0);
253 tree op1 = TREE_OPERAND (t, 1);
254 {
255/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
256 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
257 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
258 return true;
259 }
260 break;
261 }
262 case UNGT_EXPR:
263 {
264 tree op0 = TREE_OPERAND (t, 0);
265 tree op1 = TREE_OPERAND (t, 1);
266 {
267/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
268 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
269 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
270 return true;
271 }
272 break;
273 }
274 case UNGE_EXPR:
275 {
276 tree op0 = TREE_OPERAND (t, 0);
277 tree op1 = TREE_OPERAND (t, 1);
278 {
279/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
280 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
281 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
282 return true;
283 }
284 break;
285 }
286 case UNEQ_EXPR:
287 {
288 tree op0 = TREE_OPERAND (t, 0);
289 tree op1 = TREE_OPERAND (t, 1);
290 {
291/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
292 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
293 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
294 return true;
295 }
296 break;
297 }
298 case LTGT_EXPR:
299 {
300 tree op0 = TREE_OPERAND (t, 0);
301 tree op1 = TREE_OPERAND (t, 1);
302 {
303/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
304 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
305 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
306 return true;
307 }
308 break;
309 }
310 case TRUTH_AND_EXPR:
311 {
312 tree op0 = TREE_OPERAND (t, 0);
313 tree op1 = TREE_OPERAND (t, 1);
314 {
315/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
316 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
317 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
318 return true;
319 }
320 break;
321 }
322 case TRUTH_ANDIF_EXPR:
323 {
324 tree op0 = TREE_OPERAND (t, 0);
325 tree op1 = TREE_OPERAND (t, 1);
326 {
327/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
328 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
329 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
330 return true;
331 }
332 break;
333 }
334 case TRUTH_OR_EXPR:
335 {
336 tree op0 = TREE_OPERAND (t, 0);
337 tree op1 = TREE_OPERAND (t, 1);
338 {
339/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
340 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
341 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
342 return true;
343 }
344 break;
345 }
346 case TRUTH_ORIF_EXPR:
347 {
348 tree op0 = TREE_OPERAND (t, 0);
349 tree op1 = TREE_OPERAND (t, 1);
350 {
351/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
352 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
353 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
354 return true;
355 }
356 break;
357 }
358 case TRUTH_XOR_EXPR:
359 {
360 tree op0 = TREE_OPERAND (t, 0);
361 tree op1 = TREE_OPERAND (t, 1);
362 {
363/* #line 937 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
364 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
365 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__);
366 return true;
367 }
368 break;
369 }
370 case TRUTH_NOT_EXPR:
371 {
372 tree op0 = TREE_OPERAND (t, 0);
373 {
374/* #line 939 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
375 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
376 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:939, %s:%d\n", __FILE__, __LINE__);
377 return true;
378 }
379 break;
380 }
381 default:;
382 }
383 return false;
384}
385
386bool
387tree_logical_inverted_value (tree t, tree *res_ops)
388{
389 tree type = TREE_TYPE (t);
390 if (TREE_SIDE_EFFECTS (t)) return false;
391 switch (TREE_CODE (t))
392 {
393 case TRUTH_NOT_EXPR:
394 {
395 tree op0 = TREE_OPERAND (t, 0);
396 {
397/* #line 941 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
398 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
399 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:941, %s:%d\n", __FILE__, __LINE__);
400 res_ops[0] = captures[0];
401 return true;
402 }
403 break;
404 }
405 case BIT_NOT_EXPR:
406 {
407 tree op0 = TREE_OPERAND (t, 0);
408 if (tree_truth_valued_p (op0))
409 {
410 {
411/* #line 943 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
412 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
413 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:943, %s:%d\n", __FILE__, __LINE__);
414 res_ops[0] = captures[0];
415 return true;
416 }
417 }
418 break;
419 }
420 case EQ_EXPR:
421 {
422 tree op0 = TREE_OPERAND (t, 0);
423 tree op1 = TREE_OPERAND (t, 1);
424 if (integer_zerop (op1))
425 {
426 {
427/* #line 945 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
428 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
429 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:945, %s:%d\n", __FILE__, __LINE__);
430 res_ops[0] = captures[0];
431 return true;
432 }
433 }
434 break;
435 }
436 case NE_EXPR:
437 {
438 tree op0 = TREE_OPERAND (t, 0);
439 tree op1 = TREE_OPERAND (t, 1);
440 if (tree_truth_valued_p (op0))
441 {
442 if (integer_truep (op1))
443 {
444 {
445/* #line 947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
446 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
447 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:947, %s:%d\n", __FILE__, __LINE__);
448 res_ops[0] = captures[0];
449 return true;
450 }
451 }
452 }
453 break;
454 }
455 case BIT_XOR_EXPR:
456 {
457 tree op0 = TREE_OPERAND (t, 0);
458 tree op1 = TREE_OPERAND (t, 1);
459 if (tree_truth_valued_p (op0))
460 {
461 if (integer_truep (op1))
462 {
463 {
464/* #line 949 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
465 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
466 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:949, %s:%d\n", __FILE__, __LINE__);
467 res_ops[0] = captures[0];
468 return true;
469 }
470 }
471 }
472 break;
473 }
474 default:;
475 }
476 return false;
477}
478
479bool
480tree_compositional_complex (tree t)
481{
482 tree type = TREE_TYPE (t);
483 if (TREE_SIDE_EFFECTS (t)) return false;
484 switch (TREE_CODE (t))
485 {
486 CASE_CONVERT:
487 {
488 tree op0 = TREE_OPERAND (t, 0);
489 switch (TREE_CODE (op0))
490 {
491 case COMPLEX_EXPR:
492 {
493 tree o20 = TREE_OPERAND (op0, 0);
494 tree o21 = TREE_OPERAND (op0, 1);
495 {
496/* #line 1927 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
497 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
498 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1927, %s:%d\n", __FILE__, __LINE__);
499 return true;
500 }
501 break;
502 }
503 default:;
504 }
505 break;
506 }
507 case COMPLEX_EXPR:
508 {
509 tree op0 = TREE_OPERAND (t, 0);
510 tree op1 = TREE_OPERAND (t, 1);
511 {
512/* #line 1927 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
513 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
514 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1927, %s:%d\n", __FILE__, __LINE__);
515 return true;
516 }
517 break;
518 }
519 default:;
520 }
521 return false;
522}
523
524bool
525tree_double_value_p (tree t)
526{
527 tree type = TREE_TYPE (t);
528 if (TREE_SIDE_EFFECTS (t)) return false;
529 {
530/* #line 3434 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
531 tree captures[1] ATTRIBUTE_UNUSED = { t };
532/* #line 3434 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
533 if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node)
534 {
535 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3433, %s:%d\n", __FILE__, __LINE__);
536 return true;
537 }
538 }
539 return false;
540}
541
542bool
543tree_float_value_p (tree t)
544{
545 tree type = TREE_TYPE (t);
546 if (TREE_SIDE_EFFECTS (t)) return false;
547 {
548/* #line 3455 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
549 tree captures[1] ATTRIBUTE_UNUSED = { t };
550/* #line 3455 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
551 if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node)
552 {
553 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3454, %s:%d\n", __FILE__, __LINE__);
554 return true;
555 }
556 }
557 return false;
558}
559
560static tree
561generic_simplify_1 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
562 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
563, combined_fn ARG_UNUSED (minmax))
564{
565/* #line 1423 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
566 if (real_isnan (TREE_REAL_CST_PTR (captures[1])) && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling))
567 {
568 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1425, %s:%d\n", __FILE__, __LINE__);
569 tree res;
570 res = captures[0];
571 if (TREE_SIDE_EFFECTS (captures[1]))
572 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
573 return res;
574 }
575 return NULL_TREE;
576}
577
578static tree
579generic_simplify_2 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
580 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
581, combined_fn ARG_UNUSED (SQRT))
582{
583/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
584 if (flag_unsafe_math_optimizations)
585 {
586/* #line 3113 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
587 if (!HONOR_SNANS (type))
588 {
589 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3114, %s:%d\n", __FILE__, __LINE__);
590 tree res;
591 res = captures[1];
592 return res;
593 }
594 }
595 return NULL_TREE;
596}
597
598static tree
599generic_simplify_3 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
600 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
601, combined_fn ARG_UNUSED (COPYSIGN))
602{
603 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3271, %s:%d\n", __FILE__, __LINE__);
604 tree res;
605 res = captures[0];
606 return res;
607 return NULL_TREE;
608}
609
610static tree
611generic_simplify_4 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
612 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
613)
614{
615/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
616 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
617 {
618 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1011, %s:%d\n", __FILE__, __LINE__);
619 tree res_op0;
620 {
621 tree ops1[2], res;
622 {
623 tree ops2[1], res;
624 ops2[0] = captures[3];
625 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
626 ops1[0] = res;
627 }
628 ops1[1] = captures[0];
629 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
630 res_op0 = res;
631 }
632 tree res;
633 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
634 return res;
635 }
636 return NULL_TREE;
637}
638
639static tree
640generic_simplify_5 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
641 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
642, enum tree_code ARG_UNUSED (bit_op), enum tree_code ARG_UNUSED (shift))
643{
644/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
645 if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
646 {
647 {
648/* #line 1695 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
649 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
650 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
651 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
652 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1696, %s:%d\n", __FILE__, __LINE__);
653 tree res_op0;
654 {
655 tree ops1[2], res;
656 {
657 tree ops2[1], res;
658 ops2[0] = captures[2];
659 if (TREE_TYPE (ops2[0]) != type)
660 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
661 else
662 res = ops2[0];
663 ops1[0] = res;
664 }
665 ops1[1] = captures[4];
666 res = fold_build2_loc (loc, shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
667 res_op0 = res;
668 }
669 tree res_op1;
670 res_op1 = mask;
671 tree res;
672 res = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
673 return res;
674 }
675 }
676 return NULL_TREE;
677}
678
679static tree
680generic_simplify_6 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
681 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
682, enum tree_code ARG_UNUSED (shiftrotate))
683{
684 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
685 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1518, %s:%d\n", __FILE__, __LINE__);
686 tree res_op0;
687 res_op0 = captures[0];
688 tree res;
689 res = non_lvalue_loc (loc, res_op0);
690 return res;
691 return NULL_TREE;
692}
693
694static tree
695generic_simplify_7 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
696 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
697, enum tree_code ARG_UNUSED (cmp))
698{
699/* #line 595 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
700 if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
701 {
702 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:596, %s:%d\n", __FILE__, __LINE__);
703 tree res;
704 res = constant_boolean_node (cmp == LT_EXPR, type);
705 if (TREE_SIDE_EFFECTS (captures[0]))
706 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
707 if (TREE_SIDE_EFFECTS (captures[1]))
708 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
709 return res;
710 }
711 return NULL_TREE;
712}
713
714static tree
715generic_simplify_8 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
716 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
717, enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (maxmin))
718{
719 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1453, %s:%d\n", __FILE__, __LINE__);
720 tree res_op0;
721 {
722 tree ops1[2], res;
723 ops1[0] = captures[1];
724 ops1[1] = captures[3];
725 res = fold_build2_loc (loc, maxmin, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
726 res_op0 = res;
727 }
728 tree res;
729 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
730 return res;
731 return NULL_TREE;
732}
733
734static tree
735generic_simplify_9 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
736 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
737)
738{
739/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
740 if (!TYPE_SATURATING (type))
741 {
742/* #line 1154 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
743 if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
744 {
745 {
746/* #line 1156 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
747 tree t1 = type;
748 if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
749 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1163, %s:%d\n", __FILE__, __LINE__);
750 tree res_op0;
751 {
752 tree ops1[2], res;
753 {
754 tree ops2[1], res;
755 ops2[0] = captures[0];
756 if (TREE_TYPE (ops2[0]) != t1)
757 res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
758 else
759 res = ops2[0];
760 ops1[0] = res;
761 }
762 {
763 tree ops2[1], res;
764 ops2[0] = captures[1];
765 if (TREE_TYPE (ops2[0]) != t1)
766 res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
767 else
768 res = ops2[0];
769 ops1[1] = res;
770 }
771 res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
772 res_op0 = res;
773 }
774 tree res;
775 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
776 return res;
777 }
778 }
779 }
780 return NULL_TREE;
781}
782
783static tree
784generic_simplify_10 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
785 tree ARG_UNUSED (op0), tree *captures
786)
787{
788/* #line 866 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
789 if (!HONOR_SIGN_DEPENDENT_ROUNDING (element_mode (type)) && !HONOR_SIGNED_ZEROS (element_mode (type)))
790 {
791 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:868, %s:%d\n", __FILE__, __LINE__);
792 tree res_op0;
793 {
794 tree ops1[1], res;
795 ops1[0] = captures[1];
796 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
797 res_op0 = res;
798 }
799 tree res_op1;
800 res_op1 = captures[0];
801 tree res;
802 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
803 return res;
804 }
805 return NULL_TREE;
806}
807
808static tree
809generic_simplify_11 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
810 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
811)
812{
813/* #line 2236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
814 if (VECTOR_TYPE_P (type) && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3])))))
815 {
816 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2240, %s:%d\n", __FILE__, __LINE__);
817 tree res_op0;
818 res_op0 = captures[0];
819 tree res_op1;
820 {
821 tree ops1[1], res;
822 {
823 tree ops2[3], res;
824 ops2[0] = captures[2];
825 {
826 tree ops3[1], res;
827 ops3[0] = captures[3];
828 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
829 ops2[1] = res;
830 }
831 ops2[2] = captures[4];
832 res = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
833 ops1[0] = res;
834 }
835 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
836 res_op1 = res;
837 }
838 tree res;
839 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
840 return res;
841 }
842 return NULL_TREE;
843}
844
845static tree
846generic_simplify_12 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
847 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
848, enum tree_code ARG_UNUSED (op))
849{
850/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
851 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
852 {
853/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
854 if (single_use (captures[4]) && single_use (captures[5]))
855 {
856 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
857 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
858 tree res_op0;
859 res_op0 = captures[0];
860 tree res_op1;
861 {
862 tree ops1[1], res;
863 ops1[0] = captures[6];
864 if (TREE_TYPE (ops1[0]) != type)
865 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
866 else
867 res = ops1[0];
868 res_op1 = res;
869 }
870 tree res;
871 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
872 return res;
873 }
874 else
875 {
876/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
877 if (single_use (captures[0]) && single_use (captures[1]))
878 {
879 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
880 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
881 tree res_op0;
882 {
883 tree ops1[1], res;
884 ops1[0] = captures[3];
885 if (TREE_TYPE (ops1[0]) != type)
886 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
887 else
888 res = ops1[0];
889 res_op0 = res;
890 }
891 tree res_op1;
892 res_op1 = captures[4];
893 tree res;
894 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
895 return res;
896 }
897 }
898 }
899 return NULL_TREE;
900}
901
902static tree
903generic_simplify_13 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
904 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
905, enum tree_code ARG_UNUSED (cmp))
906{
907 {
908/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
909 tree from_type = TREE_TYPE (captures[0]);
910 tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
911 enum tree_code code = ERROR_MARK;
912 if (INTEGRAL_TYPE_P (from_type) && int_fits_type_p (captures[2], from_type) && (types_match (c1_type, from_type) || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type)))) && (types_match (c2_type, from_type) || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type))))) { if (cmp != EQ_EXPR) { if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) - 1)) { if (cmp == LE_EXPR) code = LT_EXPR;
913 if (cmp == GT_EXPR) code = GE_EXPR;
914 } if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) + 1)) { if (cmp == LT_EXPR) code = LE_EXPR;
915 if (cmp == GE_EXPR) code = GT_EXPR;
916 } if (code != ERROR_MARK || wi::to_widest (captures[2]) == wi::to_widest (captures[1])) { if (cmp == LT_EXPR || cmp == LE_EXPR) code = MIN_EXPR;
917 if (cmp == GT_EXPR || cmp == GE_EXPR) code = MAX_EXPR;
918 } } else if (int_fits_type_p (captures[1], from_type)) code = EQ_EXPR;
919 }/* #line 2080 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
920 if (code == MAX_EXPR)
921 {
922 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
923 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
924 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
925 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2081, %s:%d\n", __FILE__, __LINE__);
926 tree res_op0;
927 {
928 tree ops1[2], res;
929 ops1[0] = captures[0];
930 {
931 tree ops2[1], res;
932 ops2[0] = captures[2];
933 if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
934 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
935 else
936 res = ops2[0];
937 ops1[1] = res;
938 }
939 res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
940 res_op0 = res;
941 }
942 tree res;
943 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
944 return res;
945 }
946 else
947 {
948/* #line 2082 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
949 if (code == MIN_EXPR)
950 {
951 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
952 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
953 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
954 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2083, %s:%d\n", __FILE__, __LINE__);
955 tree res_op0;
956 {
957 tree ops1[2], res;
958 ops1[0] = captures[0];
959 {
960 tree ops2[1], res;
961 ops2[0] = captures[2];
962 if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
963 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
964 else
965 res = ops2[0];
966 ops1[1] = res;
967 }
968 res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
969 res_op0 = res;
970 }
971 tree res;
972 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
973 return res;
974 }
975 else
976 {
977/* #line 2084 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
978 if (code == EQ_EXPR)
979 {
980 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
981 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
982 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
983 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2085, %s:%d\n", __FILE__, __LINE__);
984 if (! tree_invariant_p (captures[1])) return NULL_TREE;
985 tree res_op0;
986 {
987 tree ops1[3], res;
988 {
989 tree ops2[2], res;
990 ops2[0] = captures[0];
991 {
992 tree ops3[1], res;
993 ops3[0] = unshare_expr (captures[1]);
994 if (TREE_TYPE (ops3[0]) != TREE_TYPE (ops2[0]))
995 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops2[0]), ops3[0]);
996 else
997 res = ops3[0];
998 ops2[1] = res;
999 }
1000 res = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, ops2[0], ops2[1]);
1001 ops1[0] = res;
1002 }
1003 {
1004 tree ops2[1], res;
1005 ops2[0] = captures[1];
1006 if (TREE_TYPE (ops2[0]) != from_type)
1007 res = fold_build1_loc (loc, NOP_EXPR, from_type, ops2[0]);
1008 else
1009 res = ops2[0];
1010 ops1[1] = res;
1011 }
1012 {
1013 tree ops2[1], res;
1014 ops2[0] = captures[2];
1015 if (TREE_TYPE (ops2[0]) != from_type)
1016 res = fold_build1_loc (loc, NOP_EXPR, from_type, ops2[0]);
1017 else
1018 res = ops2[0];
1019 ops1[2] = res;
1020 }
1021 res = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2]);
1022 res_op0 = res;
1023 }
1024 tree res;
1025 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1026 return res;
1027 }
1028 }
1029 }
1030 }
1031 return NULL_TREE;
1032}
1033
1034static tree
1035generic_simplify_14 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1036 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1037, enum tree_code ARG_UNUSED (div))
1038{
1039/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1040 if (integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0 && wi::add (captures[2], captures[1]) == 0 && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
1041 {
1042 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1043 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:272, %s:%d\n", __FILE__, __LINE__);
1044 tree res_op0;
1045 {
1046 tree ops1[1], res;
1047 ops1[0] = captures[0];
1048 if (TREE_TYPE (ops1[0]) != type)
1049 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1050 else
1051 res = ops1[0];
1052 res_op0 = res;
1053 }
1054 tree res_op1;
1055 res_op1 = build_int_cst (integer_type_node, wi::exact_log2 (captures[2]));
1056 tree res;
1057 res = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
1058 if (TREE_SIDE_EFFECTS (captures[1]))
1059 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1060 return res;
1061 }
1062 return NULL_TREE;
1063}
1064
1065static tree
1066generic_simplify_15 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1067 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1068, enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (comb))
1069{
1070 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1485, %s:%d\n", __FILE__, __LINE__);
1071 if (! tree_invariant_p (captures[2])) return NULL_TREE;
1072 tree res_op0;
1073 {
1074 tree ops1[2], res;
1075 ops1[0] = captures[0];
1076 ops1[1] = unshare_expr (captures[2]);
1077 res = fold_build2_loc (loc, cmp, type, ops1[0], ops1[1]);
1078 res_op0 = res;
1079 }
1080 tree res_op1;
1081 {
1082 tree ops1[2], res;
1083 ops1[0] = captures[1];
1084 ops1[1] = captures[2];
1085 res = fold_build2_loc (loc, cmp, type, ops1[0], ops1[1]);
1086 res_op1 = res;
1087 }
1088 tree res;
1089 res = fold_build2_loc (loc, comb, type, res_op0, res_op1);
1090 return res;
1091 return NULL_TREE;
1092}
1093
1094static tree
1095generic_simplify_16 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1096 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1097, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop))
1098{
1099/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1100 if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
1101 {
1102 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:741, %s:%d\n", __FILE__, __LINE__);
1103 tree res_op0;
1104 {
1105 tree ops1[2], res;
1106 {
1107 tree ops2[1], res;
1108 ops2[0] = captures[0];
1109 if (TREE_TYPE (ops2[0]) != type)
1110 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
1111 else
1112 res = ops2[0];
1113 ops1[0] = res;
1114 }
1115 {
1116 tree ops2[1], res;
1117 ops2[0] = captures[1];
1118 if (TREE_TYPE (ops2[0]) != type)
1119 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
1120 else
1121 res = ops2[0];
1122 ops1[1] = res;
1123 }
1124 res = fold_build2_loc (loc, rop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
1125 res_op0 = res;
1126 }
1127 tree res;
1128 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
1129 return res;
1130 }
1131 return NULL_TREE;
1132}
1133
1134static tree
1135generic_simplify_17 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1136 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1137, enum tree_code ARG_UNUSED (mod))
1138{
1139/* #line 309 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1140 if (!TYPE_UNSIGNED (type))
1141 {
1142 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:310, %s:%d\n", __FILE__, __LINE__);
1143 tree res;
1144 res = build_zero_cst (type);
1145 if (TREE_SIDE_EFFECTS (captures[0]))
1146 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1147 if (TREE_SIDE_EFFECTS (captures[1]))
1148 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1149 return res;
1150 }
1151 return NULL_TREE;
1152}
1153
1154static tree
1155generic_simplify_18 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1156 tree ARG_UNUSED (op0), tree *captures
1157, combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos))
1158{
1159/* #line 3479 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1160 if (optimize && canonicalize_math_p ())
1161 {
1162 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3482, %s:%d\n", __FILE__, __LINE__);
1163 tree res_op0;
1164 res_op0 = captures[0];
1165 tree res;
1166 res = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
1167 if (!res)
1168 return NULL_TREE;
1169 return res;
1170 }
1171 return NULL_TREE;
1172}
1173
1174static tree
1175generic_simplify_19 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1176 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1177, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (ncmp))
1178{
1179/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1180 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[1])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[1])))) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (captures[2], element_precision (captures[1])))
1181 {
1182 {
1183/* #line 2815 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1184 tree stype = signed_type_for (TREE_TYPE (captures[1]));
1185 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
1186 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2816, %s:%d\n", __FILE__, __LINE__);
1187 tree res_op0;
1188 {
1189 tree ops1[1], res;
1190 ops1[0] = captures[1];
1191 if (TREE_TYPE (ops1[0]) != stype)
1192 res = fold_build1_loc (loc, NOP_EXPR, stype, ops1[0]);
1193 else
1194 res = ops1[0];
1195 res_op0 = res;
1196 }
1197 tree res_op1;
1198 res_op1 = build_zero_cst (stype);
1199 tree res;
1200 res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1201 if (TREE_SIDE_EFFECTS (captures[2]))
1202 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
1203 return res;
1204 }
1205 }
1206 return NULL_TREE;
1207}
1208
1209static tree
1210generic_simplify_20 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1211 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1212, enum tree_code ARG_UNUSED (cmp))
1213{
1214/* #line 2603 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1215 if (wi::gt_p (captures[1], 0, TYPE_SIGN (TREE_TYPE (captures[1]))))
1216 {
1217 {
1218/* #line 2604 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1219 bool ovf;
1220 wide_int prod = wi::mul (captures[2], captures[1], TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
1221/* #line 2609 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1222 if (ovf)
1223 {
1224 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1225 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1226 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2610, %s:%d\n", __FILE__, __LINE__);
1227 tree res;
1228 res = constant_boolean_node (wi::lt_p (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (cmp == LT_EXPR || cmp == LE_EXPR), type);
1229 if (TREE_SIDE_EFFECTS (captures[0]))
1230 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1231 return res;
1232 }
1233 else
1234 {
1235 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1236 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1237 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2612, %s:%d\n", __FILE__, __LINE__);
1238 tree res_op0;
1239 res_op0 = captures[0];
1240 tree res_op1;
1241 res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
1242 tree res;
1243 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1244 return res;
1245 }
1246 }
1247 }
1248 return NULL_TREE;
1249}
1250
1251static tree
1252generic_simplify_21 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1253 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1254, enum tree_code ARG_UNUSED (mod))
1255{
1256/* #line 324 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1257 if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && wi::multiple_of_p (captures[1], captures[2], TYPE_SIGN (type)))
1258 {
1259 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:327, %s:%d\n", __FILE__, __LINE__);
1260 tree res;
1261 res = build_zero_cst (type);
1262 if (TREE_SIDE_EFFECTS (captures[0]))
1263 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1264 if (TREE_SIDE_EFFECTS (captures[1]))
1265 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1266 if (TREE_SIDE_EFFECTS (captures[2]))
1267 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
1268 return res;
1269 }
1270 return NULL_TREE;
1271}
1272
1273static tree
1274generic_simplify_22 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1275 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1276, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp))
1277{
1278 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
1279 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
1280 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1581, %s:%d\n", __FILE__, __LINE__);
1281 tree res_op0;
1282 res_op0 = captures[0];
1283 tree res_op1;
1284 res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1285 tree res;
1286 res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1287 return res;
1288 return NULL_TREE;
1289}
1290
1291static tree
1292generic_simplify_23 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1293 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1294, enum tree_code ARG_UNUSED (div))
1295{
1296/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1297 if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_OVERFLOW_UNDEFINED (type))
1298 {
1299 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:184, %s:%d\n", __FILE__, __LINE__);
1300 tree res;
1301 res = build_minus_one_cst (type);
1302 if (TREE_SIDE_EFFECTS (captures[0]))
1303 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1304 return res;
1305 }
1306 return NULL_TREE;
1307}
1308
1309static tree
1310generic_simplify_24 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1311 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1312, combined_fn ARG_UNUSED (copysigns))
1313{
1314 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:490, %s:%d\n", __FILE__, __LINE__);
1315 if (! tree_invariant_p (captures[1])) return NULL_TREE;
1316 tree res_op0;
1317 res_op0 = unshare_expr (captures[1]);
1318 tree res_op1;
1319 res_op1 = captures[1];
1320 tree res;
1321 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
1322 if (TREE_SIDE_EFFECTS (captures[2]))
1323 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
1324 return res;
1325 return NULL_TREE;
1326}
1327
1328static tree
1329generic_simplify_25 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1330 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1331)
1332{
1333/* #line 230 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1334 if (SCALAR_FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
1335 {
1336/* #line 234 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1337 if (types_match (type, float_type_node))
1338 {
1339 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:235, %s:%d\n", __FILE__, __LINE__);
1340 tree res_op0;
1341 res_op0 = build_one_cst (type);
1342 tree res_op1;
1343 {
1344 tree ops1[1], res;
1345 ops1[0] = captures[0];
1346 if (TREE_TYPE (ops1[0]) != type)
1347 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1348 else
1349 res = ops1[0];
1350 res_op1 = res;
1351 }
1352 tree res;
1353 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
1354 if (!res)
1355 return NULL_TREE;
1356 return res;
1357 }
1358 else
1359 {
1360/* #line 236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1361 if (types_match (type, double_type_node))
1362 {
1363 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:237, %s:%d\n", __FILE__, __LINE__);
1364 tree res_op0;
1365 res_op0 = build_one_cst (type);
1366 tree res_op1;
1367 {
1368 tree ops1[1], res;
1369 ops1[0] = captures[0];
1370 if (TREE_TYPE (ops1[0]) != type)
1371 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1372 else
1373 res = ops1[0];
1374 res_op1 = res;
1375 }
1376 tree res;
1377 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
1378 if (!res)
1379 return NULL_TREE;
1380 return res;
1381 }
1382 else
1383 {
1384/* #line 238 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1385 if (types_match (type, long_double_type_node))
1386 {
1387 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:239, %s:%d\n", __FILE__, __LINE__);
1388 tree res_op0;
1389 res_op0 = build_one_cst (type);
1390 tree res_op1;
1391 {
1392 tree ops1[1], res;
1393 ops1[0] = captures[0];
1394 if (TREE_TYPE (ops1[0]) != type)
1395 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1396 else
1397 res = ops1[0];
1398 res_op1 = res;
1399 }
1400 tree res;
1401 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
1402 if (!res)
1403 return NULL_TREE;
1404 return res;
1405 }
1406 }
1407 }
1408 }
1409 return NULL_TREE;
1410}
1411
1412static tree
1413generic_simplify_26 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1414 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1415, enum tree_code ARG_UNUSED (op))
1416{
1417/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1418 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
1419 {
1420/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1421 if (single_use (captures[4]) && single_use (captures[5]))
1422 {
1423 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
1424 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
1425 tree res_op0;
1426 res_op0 = captures[0];
1427 tree res_op1;
1428 {
1429 tree ops1[1], res;
1430 ops1[0] = captures[6];
1431 if (TREE_TYPE (ops1[0]) != type)
1432 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1433 else
1434 res = ops1[0];
1435 res_op1 = res;
1436 }
1437 tree res;
1438 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
1439 return res;
1440 }
1441 else
1442 {
1443/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1444 if (single_use (captures[0]) && single_use (captures[1]))
1445 {
1446 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
1447 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
1448 tree res_op0;
1449 {
1450 tree ops1[1], res;
1451 ops1[0] = captures[3];
1452 if (TREE_TYPE (ops1[0]) != type)
1453 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1454 else
1455 res = ops1[0];
1456 res_op0 = res;
1457 }
1458 tree res_op1;
1459 res_op1 = captures[4];
1460 tree res;
1461 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
1462 return res;
1463 }
1464 }
1465 }
1466 return NULL_TREE;
1467}
1468
1469static tree
1470generic_simplify_27 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1471 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1472)
1473{
1474 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
1475 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2625, %s:%d\n", __FILE__, __LINE__);
1476 tree res;
1477 res = captures[1];
1478 return res;
1479 return NULL_TREE;
1480}
1481
1482static tree
1483generic_simplify_28 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1484 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1485, enum tree_code ARG_UNUSED (shift))
1486{
1487/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1488 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
1489 {
1490 {
1491/* #line 1610 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1492 unsigned int shiftc = tree_to_uhwi (captures[4]);
1493 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
1494 unsigned HOST_WIDE_INT newmask, zerobits = 0;
1495 tree shift_type = TREE_TYPE (captures[2]);
1496 unsigned int prec;
1497 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
1498 else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (shift_type)))) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
1499 tree arg00 = captures[3];
1500 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
1501 if ((TYPE_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (inner_type))) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
1502 if (shiftc < prec) shift_type = inner_type;
1503 } } zerobits = HOST_WIDE_INT_M1U;
1504 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
1505 zerobits <<= prec - shiftc;
1506 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
1507 else zerobits = 0;
1508 } }/* #line 1666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1509 if ((mask & zerobits) == mask)
1510 {
1511 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1512 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
1513 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
1514 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__);
1515 tree res;
1516 res = build_int_cst (type, 0);
1517 return res;
1518 }
1519 else
1520 {
1521 {
1522/* #line 1668 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1523 newmask = mask | zerobits;
1524/* #line 1669 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1525 if (newmask != mask && (newmask & (newmask + 1)) == 0)
1526 {
1527 {
1528/* #line 1670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1529 for (prec = BITS_PER_UNIT;
1530 prec < HOST_BITS_PER_WIDE_INT;
1531 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
1532/* #line 1679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1533 if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
1534 {
1535 {
1536/* #line 1681 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1537 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
1538/* #line 1683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1539 if (!tree_int_cst_equal (newmaskt, captures[5]))
1540 {
1541/* #line 1684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1542 if (shift_type != TREE_TYPE (captures[2]))
1543 {
1544 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1545 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
1546 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
1547 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__);
1548 tree res_op0;
1549 {
1550 tree ops1[1], res;
1551 {
1552 tree ops2[2], res;
1553 {
1554 tree ops3[1], res;
1555 ops3[0] = captures[2];
1556 if (TREE_TYPE (ops3[0]) != shift_type)
1557 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
1558 else
1559 res = ops3[0];
1560 ops2[0] = res;
1561 }
1562 ops2[1] = captures[4];
1563 res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
1564 ops1[0] = res;
1565 }
1566 if (TREE_TYPE (ops1[0]) != type)
1567 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1568 else
1569 res = ops1[0];
1570 res_op0 = res;
1571 }
1572 tree res_op1;
1573 res_op1 = newmaskt;
1574 tree res;
1575 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1576 return res;
1577 }
1578 else
1579 {
1580 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
1581 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
1582 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__);
1583 tree res_op0;
1584 res_op0 = captures[0];
1585 tree res_op1;
1586 res_op1 = newmaskt;
1587 tree res;
1588 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1589 return res;
1590 }
1591 }
1592 }
1593 }
1594 }
1595 }
1596 }
1597 }
1598 }
1599 }
1600 return NULL_TREE;
1601}
1602
1603static tree
1604generic_simplify_29 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1605 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1606, enum tree_code ARG_UNUSED (op))
1607{
1608 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
1609 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:802, %s:%d\n", __FILE__, __LINE__);
1610 tree res;
1611 res = captures[0];
1612 return res;
1613 return NULL_TREE;
1614}
1615
1616static tree
1617generic_simplify_30 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1618 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1619)
1620{
1621/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1622 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
1623 {
1624 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1011, %s:%d\n", __FILE__, __LINE__);
1625 tree res_op0;
1626 {
1627 tree ops1[2], res;
1628 {
1629 tree ops2[1], res;
1630 ops2[0] = captures[3];
1631 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
1632 ops1[0] = res;
1633 }
1634 ops1[1] = captures[0];
1635 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
1636 res_op0 = res;
1637 }
1638 tree res;
1639 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1640 return res;
1641 }
1642 return NULL_TREE;
1643}
1644
1645static tree
1646generic_simplify_31 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1647 tree ARG_UNUSED (op0), tree *captures
1648, combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos))
1649{
1650/* #line 3448 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1651 if (optimize && canonicalize_math_p ())
1652 {
1653 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3451, %s:%d\n", __FILE__, __LINE__);
1654 tree res_op0;
1655 {
1656 tree ops1[1], res;
1657 ops1[0] = captures[0];
1658 {
1659 res = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (ops1[0]), 1, ops1[0]);
1660 if (!res)
1661 return NULL_TREE;
1662 }
1663 res_op0 = res;
1664 }
1665 tree res;
1666 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1667 return res;
1668 }
1669 return NULL_TREE;
1670}
1671
1672static tree
1673generic_simplify_32 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1674 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1675, enum tree_code ARG_UNUSED (cmp))
1676{
1677/* #line 2349 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1678 if (cmp != NE_EXPR || ! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
1679 {
1680 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2352, %s:%d\n", __FILE__, __LINE__);
1681 tree res;
1682 res = constant_boolean_node (false, type);
1683 if (TREE_SIDE_EFFECTS (captures[0]))
1684 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1685 return res;
1686 }
1687 return NULL_TREE;
1688}
1689
1690static tree
1691generic_simplify_33 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1692 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1693)
1694{
1695/* #line 772 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1696 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
1697 {
1698 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:773, %s:%d\n", __FILE__, __LINE__);
1699 tree res_op0;
1700 {
1701 tree ops1[1], res;
1702 ops1[0] = captures[0];
1703 if (TREE_TYPE (ops1[0]) != type)
1704 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
1705 else
1706 res = ops1[0];
1707 res_op0 = res;
1708 }
1709 tree res_op1;
1710 {
1711 tree ops1[1], res;
1712 ops1[0] = captures[1];
1713 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
1714 res_op1 = res;
1715 }
1716 tree res;
1717 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
1718 return res;
1719 }
1720 return NULL_TREE;
1721}
1722
1723static tree
1724generic_simplify_34 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1725 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1726, combined_fn ARG_UNUSED (FMAX))
1727{
1728/* #line 1431 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1729 if (flag_finite_math_only)
1730 {
1731 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1437, %s:%d\n", __FILE__, __LINE__);
1732 tree res_op0;
1733 res_op0 = captures[0];
1734 tree res_op1;
1735 res_op1 = captures[1];
1736 tree res;
1737 res = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1738 return res;
1739 }
1740 return NULL_TREE;
1741}
1742
1743static tree
1744generic_simplify_35 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1745 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1746, enum tree_code ARG_UNUSED (cmp))
1747{
1748/* #line 2588 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1749 if (!integer_zerop (captures[1]))
1750 {
1751/* #line 2589 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1752 if (wi::eq_p (captures[2], 0))
1753 {
1754 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2590, %s:%d\n", __FILE__, __LINE__);
1755 tree res_op0;
1756 res_op0 = captures[0];
1757 tree res_op1;
1758 res_op1 = captures[2];
1759 tree res;
1760 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1761 if (TREE_SIDE_EFFECTS (captures[1]))
1762 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1763 return res;
1764 }
1765 else
1766 {
1767/* #line 2591 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1768 if (TREE_CODE (captures[1]) == INTEGER_CST)
1769 {
1770 {
1771/* #line 2592 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1772 bool ovf;
1773 wide_int prod = wi::mul (captures[2], captures[1], TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
1774/* #line 2597 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1775 if (ovf)
1776 {
1777 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1778 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1779 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2598, %s:%d\n", __FILE__, __LINE__);
1780 tree res;
1781 res = constant_boolean_node (cmp == NE_EXPR, type);
1782 if (TREE_SIDE_EFFECTS (captures[0]))
1783 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1784 return res;
1785 }
1786 else
1787 {
1788 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1789 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1790 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2599, %s:%d\n", __FILE__, __LINE__);
1791 tree res_op0;
1792 res_op0 = captures[0];
1793 tree res_op1;
1794 res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
1795 tree res;
1796 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1797 return res;
1798 }
1799 }
1800 }
1801 }
1802 }
1803 return NULL_TREE;
1804}
1805
1806static tree
1807generic_simplify_36 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1808 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1809, enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (cmp))
1810{
1811/* #line 549 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1812 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2])))
1813 {
1814 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
1815 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:552, %s:%d\n", __FILE__, __LINE__);
1816 tree res_op0;
1817 {
1818 tree ops1[2], res;
1819 ops1[0] = captures[0];
1820 {
1821 tree ops2[1], res;
1822 ops2[0] = captures[2];
1823 if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
1824 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
1825 else
1826 res = ops2[0];
1827 ops1[1] = res;
1828 }
1829 res = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
1830 res_op0 = res;
1831 }
1832 tree res_op1;
1833 res_op1 = captures[1];
1834 tree res;
1835 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1836 return res;
1837 }
1838 return NULL_TREE;
1839}
1840
1841static tree
1842generic_simplify_37 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1843 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1844)
1845{
1846/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1847 if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
1848 {
1849 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:359, %s:%d\n", __FILE__, __LINE__);
1850 tree res_op0;
1851 {
1852 tree ops1[2], res;
1853 ops1[0] = captures[0];
1854 ops1[1] = captures[1];
1855 res = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
1856 res_op0 = res;
1857 }
1858 tree res;
1859 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1860 return res;
1861 }
1862 return NULL_TREE;
1863}
1864
1865static tree
1866generic_simplify_38 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1867 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1868, enum tree_code ARG_UNUSED (test1), enum tree_code ARG_UNUSED (test2))
1869{
1870/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1871 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
1872 {
1873 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2638, %s:%d\n", __FILE__, __LINE__);
1874 tree res;
1875 res = constant_boolean_node (true, type);
1876 if (TREE_SIDE_EFFECTS (captures[0]))
1877 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1878 if (TREE_SIDE_EFFECTS (captures[1]))
1879 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1880 return res;
1881 }
1882 return NULL_TREE;
1883}
1884
1885static tree
1886generic_simplify_39 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1887 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1888, enum tree_code ARG_UNUSED (shiftrotate))
1889{
1890 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1521, %s:%d\n", __FILE__, __LINE__);
1891 tree res;
1892 res = captures[0];
1893 if (TREE_SIDE_EFFECTS (captures[1]))
1894 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
1895 return res;
1896 return NULL_TREE;
1897}
1898
1899static tree
1900generic_simplify_40 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1901 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1902, enum tree_code ARG_UNUSED (div))
1903{
1904 {
1905/* #line 199 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1906 bool overflow_p;
1907 wide_int mul = wi::mul (captures[1], captures[2], TYPE_SIGN (type), &overflow_p);
1908/* #line 203 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1909 if (!overflow_p)
1910 {
1911 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1912 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1913 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:204, %s:%d\n", __FILE__, __LINE__);
1914 tree res_op0;
1915 res_op0 = captures[0];
1916 tree res_op1;
1917 res_op1 = wide_int_to_tree (type, mul);
1918 tree res;
1919 res = fold_build2_loc (loc, div, type, res_op0, res_op1);
1920 return res;
1921 }
1922 else
1923 {
1924/* #line 205 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1925 if (TYPE_UNSIGNED (type) || mul != wi::min_value (TYPE_PRECISION (type), SIGNED))
1926 {
1927 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
1928 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
1929 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:207, %s:%d\n", __FILE__, __LINE__);
1930 tree res;
1931 res = build_zero_cst (type);
1932 if (TREE_SIDE_EFFECTS (captures[0]))
1933 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
1934 return res;
1935 }
1936 }
1937 }
1938 return NULL_TREE;
1939}
1940
1941static tree
1942generic_simplify_41 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1943 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1944)
1945{
1946 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:557, %s:%d\n", __FILE__, __LINE__);
1947 tree res_op0;
1948 {
1949 tree ops1[2], res;
1950 ops1[0] = captures[1];
1951 ops1[1] = unshare_expr (captures[2]);
1952 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
1953 res_op0 = res;
1954 }
1955 tree res_op1;
1956 res_op1 = captures[2];
1957 tree res;
1958 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
1959 return res;
1960 return NULL_TREE;
1961}
1962
1963static tree
1964generic_simplify_42 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1965 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1966)
1967{
1968/* #line 1362 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1969 if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
1970 {
1971 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1365, %s:%d\n", __FILE__, __LINE__);
1972 tree res_op0;
1973 {
1974 tree ops1[1], res;
1975 ops1[0] = captures[0];
1976 res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
1977 res_op0 = res;
1978 }
1979 tree res;
1980 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
1981 return res;
1982 }
1983 return NULL_TREE;
1984}
1985
1986static tree
1987generic_simplify_43 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
1988 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
1989, combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (COS))
1990{
1991/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1992 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
1993 {
1994/* #line 3333 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
1995 if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
1996 {
1997 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3335, %s:%d\n", __FILE__, __LINE__);
1998 tree res_op0;
1999 res_op0 = build_one_cst (type);
2000 tree res_op1;
2001 {
2002 tree ops1[1], res;
2003 ops1[0] = captures[1];
2004 {
2005 res = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
2006 if (!res)
2007 return NULL_TREE;
2008 }
2009 res_op1 = res;
2010 }
2011 tree res;
2012 res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
2013 return res;
2014 }
2015 }
2016 return NULL_TREE;
2017}
2018
2019static tree
2020generic_simplify_44 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2021 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2022)
2023{
2024 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:566, %s:%d\n", __FILE__, __LINE__);
2025 tree res_op0;
2026 res_op0 = unshare_expr (captures[2]);
2027 tree res_op1;
2028 {
2029 tree ops1[2], res;
2030 ops1[0] = captures[1];
2031 ops1[1] = captures[2];
2032 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2033 res_op1 = res;
2034 }
2035 tree res;
2036 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2037 return res;
2038 return NULL_TREE;
2039}
2040
2041static tree
2042generic_simplify_45 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2043 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2044)
2045{
2046 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:571, %s:%d\n", __FILE__, __LINE__);
2047 tree res_op0;
2048 res_op0 = captures[0];
2049 tree res_op1;
2050 res_op1 = captures[1];
2051 tree res;
2052 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2053 return res;
2054 return NULL_TREE;
2055}
2056
2057static tree
2058generic_simplify_46 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2059 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2060, enum tree_code ARG_UNUSED (shiftrotate))
2061{
2062 {
2063/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2064 tree tem = uniform_vector_p (captures[1]);
2065/* #line 1528 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2066 if (tem)
2067 {
2068 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
2069 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1529, %s:%d\n", __FILE__, __LINE__);
2070 tree res_op0;
2071 res_op0 = captures[0];
2072 tree res_op1;
2073 res_op1 = tem;
2074 tree res;
2075 res = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
2076 return res;
2077 }
2078 }
2079 return NULL_TREE;
2080}
2081
2082static tree
2083generic_simplify_47 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2084 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2085)
2086{
2087 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:534, %s:%d\n", __FILE__, __LINE__);
2088 tree res;
2089 res = build_zero_cst (type);
2090 if (TREE_SIDE_EFFECTS (captures[0]))
2091 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
2092 return res;
2093 return NULL_TREE;
2094}
2095
2096static tree
2097generic_simplify_48 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2098 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2099, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop), enum tree_code ARG_UNUSED (cmp))
2100{
2101/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2102 if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
2103 {
2104 {
2105/* #line 3722 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2106 tree res = int_const_binop (rop, captures[3], captures[2]);
2107/* #line 3723 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2108 if (TREE_OVERFLOW (res))
2109 {
2110 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2111 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2112 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3724, %s:%d\n", __FILE__, __LINE__);
2113 tree res;
2114 fold_overflow_warning (("assuming signed overflow does not occur " "when simplifying conditional to constant"), WARN_STRICT_OVERFLOW_CONDITIONAL);
2115 bool less = cmp == LE_EXPR || cmp == LT_EXPR;
2116 bool ovf_high = wi::lt_p (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (op == MINUS_EXPR);
2117 res = constant_boolean_node (less == ovf_high, type);
2118 if (TREE_SIDE_EFFECTS (captures[1]))
2119 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
2120 return res;
2121 }
2122 else
2123 {
2124/* #line 3734 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2125 if (single_use (captures[0]))
2126 {
2127 {
2128/* #line 3735 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2129 fold_overflow_warning (("assuming signed overflow does not occur " "when changing X +- C1 cmp C2 to " "X cmp C2 -+ C1"), WARN_STRICT_OVERFLOW_COMPARISON);
2130 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2131 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2132 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3742, %s:%d\n", __FILE__, __LINE__);
2133 tree res_op0;
2134 res_op0 = captures[1];
2135 tree res_op1;
2136 res_op1 = res;
2137 tree res;
2138 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2139 return res;
2140 }
2141 }
2142 }
2143 }
2144 }
2145 return NULL_TREE;
2146}
2147
2148static tree
2149generic_simplify_49 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2150 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2151, enum tree_code ARG_UNUSED (cmp))
2152{
2153 {
2154/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2155 HOST_WIDE_INT off0, off1;
2156 tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0);
2157 tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1);
2158 if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).to_short_addr ();
2159 base0 = TREE_OPERAND (base0, 0);
2160 } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).to_short_addr ();
2161 base1 = TREE_OPERAND (base1, 0);
2162 }/* #line 2860 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2163 if (base0 && base1)
2164 {
2165 {
2166/* #line 2861 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2167 int equal = 2;
2168 if (1 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ;
2169 else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1));
2170 else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1);
2171/* #line 2883 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2172 if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || off0 == off1 || POINTER_TYPE_OVERFLOW_UNDEFINED || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST))))
2173 {
2174/* #line 2892 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2175 if (cmp == EQ_EXPR)
2176 {
2177 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2178 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2179 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2893, %s:%d\n", __FILE__, __LINE__);
2180 tree res;
2181 res = constant_boolean_node (off0 == off1, type);
2182 return res;
2183 }
2184 else
2185 {
2186/* #line 2894 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2187 if (cmp == NE_EXPR)
2188 {
2189 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2190 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2191 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2895, %s:%d\n", __FILE__, __LINE__);
2192 tree res;
2193 res = constant_boolean_node (off0 != off1, type);
2194 return res;
2195 }
2196 else
2197 {
2198/* #line 2896 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2199 if (cmp == LT_EXPR)
2200 {
2201 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2202 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2203 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2897, %s:%d\n", __FILE__, __LINE__);
2204 tree res;
2205 res = constant_boolean_node (off0 < off1, type);
2206 return res;
2207 }
2208 else
2209 {
2210/* #line 2898 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2211 if (cmp == LE_EXPR)
2212 {
2213 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2214 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2215 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2899, %s:%d\n", __FILE__, __LINE__);
2216 tree res;
2217 res = constant_boolean_node (off0 <= off1, type);
2218 return res;
2219 }
2220 else
2221 {
2222/* #line 2900 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2223 if (cmp == GE_EXPR)
2224 {
2225 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2226 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2227 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2901, %s:%d\n", __FILE__, __LINE__);
2228 tree res;
2229 res = constant_boolean_node (off0 >= off1, type);
2230 return res;
2231 }
2232 else
2233 {
2234/* #line 2902 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2235 if (cmp == GT_EXPR)
2236 {
2237 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2238 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2239 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2903, %s:%d\n", __FILE__, __LINE__);
2240 tree res;
2241 res = constant_boolean_node (off0 > off1, type);
2242 return res;
2243 }
2244 }
2245 }
2246 }
2247 }
2248 }
2249 }
2250 else
2251 {
2252/* #line 2904 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2253 if (equal == 0 && DECL_P (base0) && DECL_P (base1) && (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || off0 == off1))
2254 {
2255/* #line 2910 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2256 if (cmp == EQ_EXPR)
2257 {
2258 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2259 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2260 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2911, %s:%d\n", __FILE__, __LINE__);
2261 tree res;
2262 res = constant_boolean_node (false, type);
2263 return res;
2264 }
2265 else
2266 {
2267/* #line 2912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2268 if (cmp == NE_EXPR)
2269 {
2270 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2271 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2272 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2913, %s:%d\n", __FILE__, __LINE__);
2273 tree res;
2274 res = constant_boolean_node (true, type);
2275 return res;
2276 }
2277 }
2278 }
2279 }
2280 }
2281 }
2282 }
2283 return NULL_TREE;
2284}
2285
2286static tree
2287generic_simplify_50 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2288 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2289)
2290{
2291/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2292 if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
2293 {
2294 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:823, %s:%d\n", __FILE__, __LINE__);
2295 tree res_op0;
2296 {
2297 tree ops1[1], res;
2298 ops1[0] = captures[1];
2299 if (TREE_TYPE (ops1[0]) != type)
2300 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
2301 else
2302 res = ops1[0];
2303 res_op0 = res;
2304 }
2305 tree res_op1;
2306 {
2307 tree ops1[1], res;
2308 ops1[0] = captures[2];
2309 if (TREE_TYPE (ops1[0]) != type)
2310 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
2311 else
2312 res = ops1[0];
2313 res_op1 = res;
2314 }
2315 tree res;
2316 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2317 if (TREE_SIDE_EFFECTS (captures[0]))
2318 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
2319 return res;
2320 }
2321 return NULL_TREE;
2322}
2323
2324static tree
2325generic_simplify_51 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2326 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2327, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
2328{
2329/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2330 if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2331 {
2332 {
2333/* #line 3088 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2334 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2335 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
2336 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3089, %s:%d\n", __FILE__, __LINE__);
2337 tree res_op0;
2338 {
2339 tree ops1[1], res;
2340 {
2341 tree ops2[2], res;
2342 ops2[0] = captures[2];
2343 ops2[1] = captures[1];
2344 {
2345 res = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, ops2[0], ops2[1]);
2346 if (!res)
2347 return NULL_TREE;
2348 }
2349 ops1[0] = res;
2350 }
2351 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
2352 res_op0 = res;
2353 }
2354 tree res_op1;
2355 res_op1 = build_zero_cst (t);
2356 tree res;
2357 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
2358 return res;
2359 }
2360 }
2361 return NULL_TREE;
2362}
2363
2364static tree
2365generic_simplify_52 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2366 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2367, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp))
2368{
2369/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2370 if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
2371 {
2372 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2656, %s:%d\n", __FILE__, __LINE__);
2373 tree res_op0;
2374 res_op0 = captures[0];
2375 tree res_op1;
2376 res_op1 = captures[1];
2377 tree res;
2378 res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
2379 return res;
2380 }
2381 return NULL_TREE;
2382}
2383
2384static tree
2385generic_simplify_53 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2386 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2387)
2388{
2389/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2390 if (!TYPE_SATURATING (type))
2391 {
2392/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2393 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
2394 {
2395 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1203, %s:%d\n", __FILE__, __LINE__);
2396 tree res;
2397 res = captures[0];
2398 if (TREE_SIDE_EFFECTS (captures[1]))
2399 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
2400 return res;
2401 }
2402 }
2403 return NULL_TREE;
2404}
2405
2406static tree
2407generic_simplify_54 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2408 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2409, enum tree_code ARG_UNUSED (op))
2410{
2411 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
2412 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:802, %s:%d\n", __FILE__, __LINE__);
2413 tree res;
2414 res = captures[0];
2415 return res;
2416 return NULL_TREE;
2417}
2418
2419static tree
2420generic_simplify_55 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2421 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2422, enum tree_code ARG_UNUSED (bitop))
2423{
2424/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2425 if (((TREE_CODE (captures[1]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && int_fits_type_p (captures[1], TREE_TYPE (captures[0]))) || types_match (captures[0], captures[1])) && (bitop != BIT_AND_EXPR ||0) && ( TYPE_PRECISION (TREE_TYPE (captures[0])) < TYPE_PRECISION (type) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || TYPE_PRECISION (type) != GET_MODE_PRECISION (TYPE_MODE (type))))
2426 {
2427 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:904, %s:%d\n", __FILE__, __LINE__);
2428 tree res_op0;
2429 {
2430 tree ops1[2], res;
2431 ops1[0] = captures[0];
2432 {
2433 tree ops2[1], res;
2434 ops2[0] = captures[1];
2435 if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
2436 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
2437 else
2438 res = ops2[0];
2439 ops1[1] = res;
2440 }
2441 res = fold_build2_loc (loc, bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2442 res_op0 = res;
2443 }
2444 tree res;
2445 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2446 return res;
2447 }
2448 return NULL_TREE;
2449}
2450
2451static tree
2452generic_simplify_56 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2453 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2454)
2455{
2456 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1347, %s:%d\n", __FILE__, __LINE__);
2457 tree res;
2458 res = captures[1];
2459 if (TREE_SIDE_EFFECTS (captures[0]))
2460 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
2461 return res;
2462 return NULL_TREE;
2463}
2464
2465static tree
2466generic_simplify_57 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2467 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2468, enum tree_code ARG_UNUSED (bitop))
2469{
2470 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:645, %s:%d\n", __FILE__, __LINE__);
2471 tree res_op0;
2472 res_op0 = captures[0];
2473 tree res;
2474 res = non_lvalue_loc (loc, res_op0);
2475 return res;
2476 return NULL_TREE;
2477}
2478
2479static tree
2480generic_simplify_58 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2481 tree ARG_UNUSED (op0), tree *captures
2482)
2483{
2484/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2485 if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
2486 {
2487 {
2488/* #line 1705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2489 tree shift_type = TREE_TYPE (captures[2]);
2490 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1707, %s:%d\n", __FILE__, __LINE__);
2491 tree res_op0;
2492 {
2493 tree ops1[2], res;
2494 {
2495 tree ops2[1], res;
2496 ops2[0] = captures[3];
2497 if (TREE_TYPE (ops2[0]) != shift_type)
2498 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops2[0]);
2499 else
2500 res = ops2[0];
2501 ops1[0] = res;
2502 }
2503 ops1[1] = captures[4];
2504 res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2505 res_op0 = res;
2506 }
2507 tree res;
2508 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2509 return res;
2510 }
2511 }
2512 return NULL_TREE;
2513}
2514
2515static tree
2516generic_simplify_59 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2517 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2518)
2519{
2520/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2521 if (!TYPE_SATURATING (type))
2522 {
2523/* #line 1167 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2524 if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
2525 {
2526 {
2527/* #line 1169 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2528 tree t1 = type;
2529 if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
2530 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1176, %s:%d\n", __FILE__, __LINE__);
2531 tree res_op0;
2532 {
2533 tree ops1[2], res;
2534 {
2535 tree ops2[1], res;
2536 ops2[0] = captures[0];
2537 if (TREE_TYPE (ops2[0]) != t1)
2538 res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
2539 else
2540 res = ops2[0];
2541 ops1[0] = res;
2542 }
2543 {
2544 tree ops2[1], res;
2545 ops2[0] = captures[1];
2546 if (TREE_TYPE (ops2[0]) != t1)
2547 res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
2548 else
2549 res = ops2[0];
2550 ops1[1] = res;
2551 }
2552 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2553 res_op0 = res;
2554 }
2555 tree res;
2556 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2557 return res;
2558 }
2559 }
2560 }
2561 return NULL_TREE;
2562}
2563
2564static tree
2565generic_simplify_60 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2566 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2567)
2568{
2569 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:659, %s:%d\n", __FILE__, __LINE__);
2570 if (! tree_invariant_p (captures[2])) return NULL_TREE;
2571 tree res_op0;
2572 {
2573 tree ops1[2], res;
2574 ops1[0] = captures[0];
2575 ops1[1] = unshare_expr (captures[2]);
2576 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2577 res_op0 = res;
2578 }
2579 tree res_op1;
2580 {
2581 tree ops1[1], res;
2582 ops1[0] = captures[2];
2583 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
2584 res_op1 = res;
2585 }
2586 tree res;
2587 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2588 return res;
2589 return NULL_TREE;
2590}
2591
2592static tree
2593generic_simplify_61 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2594 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2595, enum tree_code ARG_UNUSED (op))
2596{
2597 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:965, %s:%d\n", __FILE__, __LINE__);
2598 tree res;
2599 res = constant_boolean_node (op == NE_EXPR ? true : false, type);
2600 if (TREE_SIDE_EFFECTS (captures[0]))
2601 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
2602 return res;
2603 return NULL_TREE;
2604}
2605
2606static tree
2607generic_simplify_62 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2608 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2609, enum tree_code ARG_UNUSED (bitop))
2610{
2611 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:666, %s:%d\n", __FILE__, __LINE__);
2612 tree res_op0;
2613 res_op0 = captures[0];
2614 tree res_op1;
2615 {
2616 tree ops1[1], res;
2617 ops1[0] = captures[2];
2618 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
2619 res_op1 = res;
2620 }
2621 tree res;
2622 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
2623 return res;
2624 return NULL_TREE;
2625}
2626
2627static tree
2628generic_simplify_63 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2629 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
2630, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (op))
2631{
2632 {
2633/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2634 tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
2635/* #line 2113 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2636 if (types_match (from_type, to_type) || (TYPE_UNSIGNED (from_type) && !TYPE_UNSIGNED (to_type) && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type) && integer_zerop (captures[1]) && (cmp == LT_EXPR || cmp == GE_EXPR)))
2637 {
2638 {
2639/* #line 2120 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2640 bool overflow = false;
2641 enum tree_code code, cmp_code = cmp;
2642 wide_int real_c1, c1 = captures[1], c2 = captures[2], c3 = captures[3];
2643 signop sgn = TYPE_SIGN (from_type);
2644 if (!types_match (from_type, to_type)) { if (cmp_code == LT_EXPR) cmp_code = GT_EXPR;
2645 if (cmp_code == GE_EXPR) cmp_code = LE_EXPR;
2646 c1 = wi::max_value (to_type);
2647 } if (op == PLUS_EXPR) real_c1 = wi::sub (c3, c2, sgn, &overflow);
2648 else real_c1 = wi::add (c3, c2, sgn, &overflow);
2649 code = cmp_code;
2650 if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type)) { if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn) && !overflow) { if (cmp_code == LE_EXPR) code = LT_EXPR;
2651 if (cmp_code == GT_EXPR) code = GE_EXPR;
2652 } if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn) && !overflow) { if (cmp_code == LT_EXPR) code = LE_EXPR;
2653 if (cmp_code == GE_EXPR) code = GT_EXPR;
2654 } if (code != cmp_code || !wi::cmp (real_c1, c1, sgn)) { if (cmp_code == LT_EXPR || cmp_code == LE_EXPR) code = MIN_EXPR;
2655 if (cmp_code == GT_EXPR || cmp_code == GE_EXPR) code = MAX_EXPR;
2656 } }/* #line 2181 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2657 if (code == MAX_EXPR)
2658 {
2659 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2660 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
2661 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2662 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2663 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2182, %s:%d\n", __FILE__, __LINE__);
2664 tree res_op0;
2665 {
2666 tree ops1[2], res;
2667 ops1[0] = captures[0];
2668 ops1[1] = wide_int_to_tree (from_type, real_c1);
2669 res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2670 res_op0 = res;
2671 }
2672 tree res_op1;
2673 res_op1 = wide_int_to_tree (from_type, c2);
2674 tree res;
2675 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
2676 return res;
2677 }
2678 else
2679 {
2680/* #line 2184 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2681 if (code == MIN_EXPR)
2682 {
2683 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
2684 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
2685 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2686 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2687 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2185, %s:%d\n", __FILE__, __LINE__);
2688 tree res_op0;
2689 {
2690 tree ops1[2], res;
2691 ops1[0] = captures[0];
2692 ops1[1] = wide_int_to_tree (from_type, real_c1);
2693 res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2694 res_op0 = res;
2695 }
2696 tree res_op1;
2697 res_op1 = wide_int_to_tree (from_type, c2);
2698 tree res;
2699 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
2700 return res;
2701 }
2702 }
2703 }
2704 }
2705 }
2706 return NULL_TREE;
2707}
2708
2709static tree
2710generic_simplify_64 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2711 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2712, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop), enum tree_code ARG_UNUSED (cmp))
2713{
2714/* #line 3705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2715 if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1])) && !TYPE_SATURATING (TREE_TYPE (captures[1])))
2716 {
2717 {
2718/* #line 3709 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2719 tree res = int_const_binop (rop, captures[3], captures[2]);
2720/* #line 3710 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2721 if (TREE_OVERFLOW (res) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
2722 {
2723 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2724 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2725 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3712, %s:%d\n", __FILE__, __LINE__);
2726 tree res;
2727 res = constant_boolean_node (cmp == NE_EXPR, type);
2728 if (TREE_SIDE_EFFECTS (captures[1]))
2729 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
2730 return res;
2731 }
2732 else
2733 {
2734/* #line 3713 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2735 if (single_use (captures[0]))
2736 {
2737 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
2738 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
2739 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3714, %s:%d\n", __FILE__, __LINE__);
2740 tree res_op0;
2741 res_op0 = captures[1];
2742 tree res_op1;
2743 res_op1 = res;
2744 tree res;
2745 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2746 return res;
2747 }
2748 }
2749 }
2750 }
2751 return NULL_TREE;
2752}
2753
2754static tree
2755generic_simplify_65 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2756 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2757, enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop))
2758{
2759 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
2760 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:674, %s:%d\n", __FILE__, __LINE__);
2761 tree res_op0;
2762 res_op0 = captures[1];
2763 tree res_op1;
2764 res_op1 = captures[2];
2765 tree res;
2766 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
2767 return res;
2768 return NULL_TREE;
2769}
2770
2771static tree
2772generic_simplify_66 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2773 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2774)
2775{
2776 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:679, %s:%d\n", __FILE__, __LINE__);
2777 tree res_op0;
2778 res_op0 = captures[0];
2779 tree res_op1;
2780 res_op1 = captures[1];
2781 tree res;
2782 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2783 return res;
2784 return NULL_TREE;
2785}
2786
2787static tree
2788generic_simplify_67 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2789 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2790)
2791{
2792 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:684, %s:%d\n", __FILE__, __LINE__);
2793 tree res_op0;
2794 res_op0 = captures[0];
2795 tree res_op1;
2796 res_op1 = captures[1];
2797 tree res;
2798 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2799 return res;
2800 return NULL_TREE;
2801}
2802
2803static tree
2804generic_simplify_68 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2805 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2806, enum tree_code ARG_UNUSED (op))
2807{
2808 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:692, %s:%d\n", __FILE__, __LINE__);
2809 tree res_op0;
2810 res_op0 = captures[0];
2811 tree res_op1;
2812 res_op1 = captures[1];
2813 tree res;
2814 res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
2815 return res;
2816 return NULL_TREE;
2817}
2818
2819static tree
2820generic_simplify_69 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2821 tree ARG_UNUSED (op0), tree *captures
2822, enum tree_code ARG_UNUSED (rotate))
2823{
2824/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2825 if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
2826 {
2827 {
2828/* #line 1719 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2829 tree rotate_type = TREE_TYPE (captures[2]);
2830 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1721, %s:%d\n", __FILE__, __LINE__);
2831 tree res_op0;
2832 {
2833 tree ops1[2], res;
2834 {
2835 tree ops2[1], res;
2836 ops2[0] = captures[3];
2837 if (TREE_TYPE (ops2[0]) != rotate_type)
2838 res = fold_build1_loc (loc, NOP_EXPR, rotate_type, ops2[0]);
2839 else
2840 res = ops2[0];
2841 ops1[0] = res;
2842 }
2843 ops1[1] = captures[4];
2844 res = fold_build2_loc (loc, rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2845 res_op0 = res;
2846 }
2847 tree res;
2848 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2849 return res;
2850 }
2851 }
2852 return NULL_TREE;
2853}
2854
2855static tree
2856generic_simplify_70 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2857 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2858, enum tree_code ARG_UNUSED (mod))
2859{
2860/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2861 if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0)
2862 {
2863 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
2864 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:376, %s:%d\n", __FILE__, __LINE__);
2865 tree res_op0;
2866 res_op0 = captures[0];
2867 tree res_op1;
2868 {
2869 tree ops1[1], res;
2870 {
2871 tree ops2[2], res;
2872 ops2[0] = captures[2];
2873 ops2[1] = build_int_cst (TREE_TYPE (captures[2]), 1);
2874 res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
2875 ops1[0] = res;
2876 }
2877 if (TREE_TYPE (ops1[0]) != type)
2878 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
2879 else
2880 res = ops1[0];
2881 res_op1 = res;
2882 }
2883 tree res;
2884 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2885 return res;
2886 }
2887 return NULL_TREE;
2888}
2889
2890static tree
2891generic_simplify_71 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2892 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2893)
2894{
2895/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2896 if (!TYPE_SATURATING (type))
2897 {
2898/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2899 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
2900 {
2901/* #line 1248 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2902 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
2903 {
2904 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
2905 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1249, %s:%d\n", __FILE__, __LINE__);
2906 tree res_op0;
2907 {
2908 tree ops1[1], res;
2909 ops1[0] = captures[0];
2910 if (TREE_TYPE (ops1[0]) != type)
2911 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
2912 else
2913 res = ops1[0];
2914 res_op0 = res;
2915 }
2916 tree res;
2917 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
2918 return res;
2919 }
2920 }
2921 }
2922 return NULL_TREE;
2923}
2924
2925static tree
2926generic_simplify_72 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2927 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2928, enum tree_code ARG_UNUSED (cmp))
2929{
2930/* #line 2771 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
2931 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
2932 {
2933 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2772, %s:%d\n", __FILE__, __LINE__);
2934 tree res_op0;
2935 res_op0 = captures[1];
2936 tree res_op1;
2937 {
2938 tree ops1[2], res;
2939 ops1[0] = captures[2];
2940 {
2941 tree ops2[1], res;
2942 ops2[0] = captures[3];
2943 if (TREE_TYPE (ops2[0]) != TREE_TYPE (res_op0))
2944 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops2[0]);
2945 else
2946 res = ops2[0];
2947 ops1[1] = res;
2948 }
2949 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
2950 res_op1 = res;
2951 }
2952 tree res;
2953 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2954 return res;
2955 }
2956 return NULL_TREE;
2957}
2958
2959static tree
2960generic_simplify_73 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2961 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2962, combined_fn ARG_UNUSED (copysigns))
2963{
2964 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:484, %s:%d\n", __FILE__, __LINE__);
2965 tree res_op0;
2966 res_op0 = captures[0];
2967 tree res_op1;
2968 res_op1 = captures[2];
2969 tree res;
2970 res = maybe_build_call_expr_loc (loc, copysigns, type, 2, res_op0, res_op1);
2971 if (!res)
2972 return NULL_TREE;
2973 if (TREE_SIDE_EFFECTS (captures[1]))
2974 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
2975 return res;
2976 return NULL_TREE;
2977}
2978
2979static tree
2980generic_simplify_74 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2981 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2982)
2983{
2984 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:726, %s:%d\n", __FILE__, __LINE__);
2985 tree res_op0;
2986 res_op0 = captures[0];
2987 tree res_op1;
2988 res_op1 = captures[1];
2989 tree res;
2990 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2991 return res;
2992 return NULL_TREE;
2993}
2994
2995static tree
2996generic_simplify_75 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
2997 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
2998)
2999{
3000 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:731, %s:%d\n", __FILE__, __LINE__);
3001 tree res_op0;
3002 res_op0 = captures[0];
3003 tree res_op1;
3004 res_op1 = captures[1];
3005 tree res;
3006 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3007 return res;
3008 return NULL_TREE;
3009}
3010
3011static tree
3012generic_simplify_76 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3013 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3014)
3015{
3016/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3017 if (!TYPE_SATURATING (type))
3018 {
3019/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3020 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
3021 {
3022/* #line 1254 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3023 if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
3024 {
3025 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3026 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1256, %s:%d\n", __FILE__, __LINE__);
3027 tree res_op0;
3028 {
3029 tree ops1[1], res;
3030 ops1[0] = captures[0];
3031 if (TREE_TYPE (ops1[0]) != type)
3032 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3033 else
3034 res = ops1[0];
3035 res_op0 = res;
3036 }
3037 tree res;
3038 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
3039 return res;
3040 }
3041 }
3042 }
3043 return NULL_TREE;
3044}
3045
3046static tree
3047generic_simplify_77 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3048 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3049, combined_fn ARG_UNUSED (POW))
3050{
3051/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3052 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
3053 {
3054/* #line 3355 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3055 if (!TREE_OVERFLOW (captures[2]))
3056 {
3057 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3356, %s:%d\n", __FILE__, __LINE__);
3058 tree res_op0;
3059 res_op0 = captures[1];
3060 tree res_op1;
3061 {
3062 tree ops1[2], res;
3063 ops1[0] = captures[2];
3064 ops1[1] = build_one_cst (type);
3065 res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3066 res_op1 = res;
3067 }
3068 tree res;
3069 res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
3070 if (!res)
3071 return NULL_TREE;
3072 return res;
3073 }
3074 }
3075 return NULL_TREE;
3076}
3077
3078static tree
3079generic_simplify_78 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3080 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3081, enum tree_code ARG_UNUSED (op))
3082{
3083/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3084 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
3085 {
3086/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3087 if (single_use (captures[4]) && single_use (captures[5]))
3088 {
3089 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3090 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
3091 tree res_op0;
3092 res_op0 = captures[0];
3093 tree res_op1;
3094 {
3095 tree ops1[1], res;
3096 ops1[0] = captures[6];
3097 if (TREE_TYPE (ops1[0]) != type)
3098 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3099 else
3100 res = ops1[0];
3101 res_op1 = res;
3102 }
3103 tree res;
3104 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
3105 return res;
3106 }
3107 else
3108 {
3109/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3110 if (single_use (captures[0]) && single_use (captures[1]))
3111 {
3112 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
3113 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
3114 tree res_op0;
3115 {
3116 tree ops1[1], res;
3117 ops1[0] = captures[3];
3118 if (TREE_TYPE (ops1[0]) != type)
3119 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3120 else
3121 res = ops1[0];
3122 res_op0 = res;
3123 }
3124 tree res_op1;
3125 res_op1 = captures[4];
3126 tree res;
3127 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
3128 return res;
3129 }
3130 }
3131 }
3132 return NULL_TREE;
3133}
3134
3135static tree
3136generic_simplify_79 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3137 tree ARG_UNUSED (op0), tree *captures
3138, enum tree_code ARG_UNUSED (minmax))
3139{
3140/* #line 1412 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3141 if (INTEGRAL_TYPE_P (type) && types_match (captures[1], type) && int_fits_type_p (captures[2], type) && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type) && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type))
3142 {
3143 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1416, %s:%d\n", __FILE__, __LINE__);
3144 tree res_op0;
3145 res_op0 = captures[1];
3146 tree res_op1;
3147 {
3148 tree ops1[1], res;
3149 ops1[0] = captures[2];
3150 if (TREE_TYPE (ops1[0]) != type)
3151 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3152 else
3153 res = ops1[0];
3154 res_op1 = res;
3155 }
3156 tree res;
3157 res = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
3158 return res;
3159 }
3160 return NULL_TREE;
3161}
3162
3163static tree
3164generic_simplify_80 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3165 tree ARG_UNUSED (op0), tree *captures
3166)
3167{
3168/* #line 982 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3169 if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
3170 {
3171 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
3172 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:984, %s:%d\n", __FILE__, __LINE__);
3173 tree res_op0;
3174 {
3175 tree ops1[1], res;
3176 ops1[0] = captures[0];
3177 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
3178 res_op0 = res;
3179 }
3180 tree res;
3181 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3182 return res;
3183 }
3184 return NULL_TREE;
3185}
3186
3187static tree
3188generic_simplify_81 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3189 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3190)
3191{
3192/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3193 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
3194 {
3195 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:760, %s:%d\n", __FILE__, __LINE__);
3196 tree res_op0;
3197 {
3198 tree ops1[2], res;
3199 ops1[0] = captures[1];
3200 {
3201 tree ops2[1], res;
3202 ops2[0] = captures[0];
3203 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
3204 ops1[1] = res;
3205 }
3206 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3207 res_op0 = res;
3208 }
3209 tree res;
3210 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3211 return res;
3212 }
3213 return NULL_TREE;
3214}
3215
3216static tree
3217generic_simplify_82 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3218 tree ARG_UNUSED (op0), tree *captures
3219)
3220{
3221/* #line 998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3222 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
3223 {
3224 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:999, %s:%d\n", __FILE__, __LINE__);
3225 tree res_op0;
3226 {
3227 tree ops1[2], res;
3228 ops1[0] = captures[0];
3229 ops1[1] = captures[1];
3230 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3231 res_op0 = res;
3232 }
3233 tree res;
3234 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3235 return res;
3236 }
3237 return NULL_TREE;
3238}
3239
3240static tree
3241generic_simplify_83 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3242 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3243, combined_fn ARG_UNUSED (POW))
3244{
3245/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3246 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
3247 {
3248 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3340, %s:%d\n", __FILE__, __LINE__);
3249 tree res_op0;
3250 res_op0 = captures[1];
3251 tree res_op1;
3252 {
3253 tree ops1[2], res;
3254 ops1[0] = captures[2];
3255 ops1[1] = captures[4];
3256 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3257 res_op1 = res;
3258 }
3259 tree res;
3260 res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
3261 if (!res)
3262 return NULL_TREE;
3263 return res;
3264 }
3265 return NULL_TREE;
3266}
3267
3268static tree
3269generic_simplify_84 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3270 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3271, enum tree_code ARG_UNUSED (bit_op), enum tree_code ARG_UNUSED (shift))
3272{
3273/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3274 if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
3275 {
3276 {
3277/* #line 1695 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3278 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
3279 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
3280 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
3281 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1696, %s:%d\n", __FILE__, __LINE__);
3282 tree res_op0;
3283 {
3284 tree ops1[2], res;
3285 {
3286 tree ops2[1], res;
3287 ops2[0] = captures[2];
3288 if (TREE_TYPE (ops2[0]) != type)
3289 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
3290 else
3291 res = ops2[0];
3292 ops1[0] = res;
3293 }
3294 ops1[1] = captures[4];
3295 res = fold_build2_loc (loc, shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3296 res_op0 = res;
3297 }
3298 tree res_op1;
3299 res_op1 = mask;
3300 tree res;
3301 res = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
3302 return res;
3303 }
3304 }
3305 return NULL_TREE;
3306}
3307
3308static tree
3309generic_simplify_85 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3310 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3311, enum tree_code ARG_UNUSED (rotate))
3312{
3313 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1492, %s:%d\n", __FILE__, __LINE__);
3314 tree res;
3315 res = captures[0];
3316 if (TREE_SIDE_EFFECTS (captures[1]))
3317 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3318 return res;
3319 return NULL_TREE;
3320}
3321
3322static tree
3323generic_simplify_86 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3324 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3325, enum tree_code ARG_UNUSED (cmp))
3326{
3327/* #line 600 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3328 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])))
3329 {
3330 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:601, %s:%d\n", __FILE__, __LINE__);
3331 tree res;
3332 res = constant_boolean_node (cmp == GT_EXPR, type);
3333 if (TREE_SIDE_EFFECTS (captures[0]))
3334 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3335 if (TREE_SIDE_EFFECTS (captures[1]))
3336 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3337 return res;
3338 }
3339 return NULL_TREE;
3340}
3341
3342static tree
3343generic_simplify_87 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3344 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3345, enum tree_code ARG_UNUSED (cmp))
3346{
3347/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3348 if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1])))
3349 {
3350 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2417, %s:%d\n", __FILE__, __LINE__);
3351 tree res_op0;
3352 res_op0 = captures[0];
3353 tree res_op1;
3354 res_op1 = build_real (TREE_TYPE (captures[1]), dconst0);
3355 tree res;
3356 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
3357 if (TREE_SIDE_EFFECTS (captures[1]))
3358 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3359 return res;
3360 }
3361 else
3362 {
3363/* #line 2419 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3364 if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && ! HONOR_SNANS (captures[1]))
3365 {
3366 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2421, %s:%d\n", __FILE__, __LINE__);
3367 tree res;
3368 res = constant_boolean_node (cmp == NE_EXPR, type);
3369 if (TREE_SIDE_EFFECTS (captures[0]))
3370 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3371 if (TREE_SIDE_EFFECTS (captures[1]))
3372 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3373 return res;
3374 }
3375 else
3376 {
3377/* #line 2423 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3378 if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1])) && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1]))))
3379 {
3380 {
3381/* #line 2425 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3382 REAL_VALUE_TYPE max;
3383 enum tree_code code = cmp;
3384 bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
3385 if (neg) code = swap_tree_comparison (code);
3386/* #line 2435 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3387 if (code == GT_EXPR && ! HONOR_SNANS (captures[0]))
3388 {
3389 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2437, %s:%d\n", __FILE__, __LINE__);
3390 tree res;
3391 res = constant_boolean_node (false, type);
3392 if (TREE_SIDE_EFFECTS (captures[0]))
3393 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3394 if (TREE_SIDE_EFFECTS (captures[1]))
3395 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3396 return res;
3397 }
3398 else
3399 {
3400/* #line 2438 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3401 if (code == LE_EXPR)
3402 {
3403/* #line 2440 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3404 if (! HONOR_NANS (captures[0]))
3405 {
3406 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2441, %s:%d\n", __FILE__, __LINE__);
3407 tree res;
3408 res = constant_boolean_node (true, type);
3409 if (TREE_SIDE_EFFECTS (captures[0]))
3410 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3411 if (TREE_SIDE_EFFECTS (captures[1]))
3412 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3413 return res;
3414 }
3415 else
3416 {
3417 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2443, %s:%d\n", __FILE__, __LINE__);
3418 if (! tree_invariant_p (captures[0])) return NULL_TREE;
3419 tree res_op0;
3420 res_op0 = unshare_expr (captures[0]);
3421 tree res_op1;
3422 res_op1 = captures[0];
3423 tree res;
3424 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
3425 if (TREE_SIDE_EFFECTS (captures[1]))
3426 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3427 return res;
3428 }
3429 }
3430 else
3431 {
3432/* #line 2445 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3433 if (code == EQ_EXPR || code == GE_EXPR)
3434 {
3435 {
3436/* #line 2446 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3437 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
3438/* #line 2447 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3439 if (neg)
3440 {
3441 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2448, %s:%d\n", __FILE__, __LINE__);
3442 tree res_op0;
3443 res_op0 = captures[0];
3444 tree res_op1;
3445 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3446 tree res;
3447 res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
3448 if (TREE_SIDE_EFFECTS (captures[1]))
3449 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3450 return res;
3451 }
3452 else
3453 {
3454 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2449, %s:%d\n", __FILE__, __LINE__);
3455 tree res_op0;
3456 res_op0 = captures[0];
3457 tree res_op1;
3458 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3459 tree res;
3460 res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
3461 if (TREE_SIDE_EFFECTS (captures[1]))
3462 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3463 return res;
3464 }
3465 }
3466 }
3467 else
3468 {
3469/* #line 2451 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3470 if (code == LT_EXPR)
3471 {
3472 {
3473/* #line 2452 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3474 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
3475/* #line 2453 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3476 if (neg)
3477 {
3478 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2454, %s:%d\n", __FILE__, __LINE__);
3479 tree res_op0;
3480 res_op0 = captures[0];
3481 tree res_op1;
3482 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3483 tree res;
3484 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
3485 if (TREE_SIDE_EFFECTS (captures[1]))
3486 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3487 return res;
3488 }
3489 else
3490 {
3491 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2455, %s:%d\n", __FILE__, __LINE__);
3492 tree res_op0;
3493 res_op0 = captures[0];
3494 tree res_op1;
3495 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3496 tree res;
3497 res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
3498 if (TREE_SIDE_EFFECTS (captures[1]))
3499 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3500 return res;
3501 }
3502 }
3503 }
3504 else
3505 {
3506/* #line 2457 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3507 if (code == NE_EXPR)
3508 {
3509 {
3510/* #line 2458 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3511 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
3512/* #line 2459 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3513 if (! HONOR_NANS (captures[0]))
3514 {
3515/* #line 2460 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3516 if (neg)
3517 {
3518 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2461, %s:%d\n", __FILE__, __LINE__);
3519 tree res_op0;
3520 res_op0 = captures[0];
3521 tree res_op1;
3522 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3523 tree res;
3524 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
3525 if (TREE_SIDE_EFFECTS (captures[1]))
3526 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3527 return res;
3528 }
3529 else
3530 {
3531 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2462, %s:%d\n", __FILE__, __LINE__);
3532 tree res_op0;
3533 res_op0 = captures[0];
3534 tree res_op1;
3535 res_op1 = build_real (TREE_TYPE (captures[0]), max);
3536 tree res;
3537 res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
3538 if (TREE_SIDE_EFFECTS (captures[1]))
3539 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3540 return res;
3541 }
3542 }
3543 else
3544 {
3545/* #line 2463 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3546 if (neg)
3547 {
3548 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2464, %s:%d\n", __FILE__, __LINE__);
3549 tree res_op0;
3550 {
3551 tree ops1[2], res;
3552 ops1[0] = captures[0];
3553 ops1[1] = build_real (TREE_TYPE (captures[0]), max);
3554 res = fold_build2_loc (loc, LT_EXPR, type, ops1[0], ops1[1]);
3555 res_op0 = res;
3556 }
3557 tree res_op1;
3558 res_op1 = build_one_cst (type);
3559 tree res;
3560 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
3561 if (TREE_SIDE_EFFECTS (captures[1]))
3562 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3563 return res;
3564 }
3565 else
3566 {
3567 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2466, %s:%d\n", __FILE__, __LINE__);
3568 tree res_op0;
3569 {
3570 tree ops1[2], res;
3571 ops1[0] = captures[0];
3572 ops1[1] = build_real (TREE_TYPE (captures[0]), max);
3573 res = fold_build2_loc (loc, GT_EXPR, type, ops1[0], ops1[1]);
3574 res_op0 = res;
3575 }
3576 tree res_op1;
3577 res_op1 = build_one_cst (type);
3578 tree res;
3579 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
3580 if (TREE_SIDE_EFFECTS (captures[1]))
3581 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3582 return res;
3583 }
3584 }
3585 }
3586 }
3587 }
3588 }
3589 }
3590 }
3591 }
3592 }
3593 }
3594 }
3595 return NULL_TREE;
3596}
3597
3598static tree
3599generic_simplify_88 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3600 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3601, enum tree_code ARG_UNUSED (div))
3602{
3603/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3604 if (!integer_zerop (captures[0]) && !ALL_FRACT_MODE_P (TYPE_MODE (type)))
3605 {
3606 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:171, %s:%d\n", __FILE__, __LINE__);
3607 tree res;
3608 res = build_one_cst (type);
3609 if (TREE_SIDE_EFFECTS (captures[0]))
3610 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3611 return res;
3612 }
3613 return NULL_TREE;
3614}
3615
3616static tree
3617generic_simplify_89 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3618 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3619, enum tree_code ARG_UNUSED (opo), enum tree_code ARG_UNUSED (opi))
3620{
3621 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:780, %s:%d\n", __FILE__, __LINE__);
3622 tree res_op0;
3623 {
3624 tree ops1[1], res;
3625 ops1[0] = captures[0];
3626 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
3627 res_op0 = res;
3628 }
3629 tree res_op1;
3630 res_op1 = captures[1];
3631 tree res;
3632 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3633 return res;
3634 return NULL_TREE;
3635}
3636
3637static tree
3638generic_simplify_90 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3639 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3640, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (ncmp))
3641{
3642/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3643 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[1])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[1])))) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (captures[2], element_precision (captures[1])))
3644 {
3645 {
3646/* #line 2815 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3647 tree stype = signed_type_for (TREE_TYPE (captures[1]));
3648 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3649 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2816, %s:%d\n", __FILE__, __LINE__);
3650 tree res_op0;
3651 {
3652 tree ops1[1], res;
3653 ops1[0] = captures[1];
3654 if (TREE_TYPE (ops1[0]) != stype)
3655 res = fold_build1_loc (loc, NOP_EXPR, stype, ops1[0]);
3656 else
3657 res = ops1[0];
3658 res_op0 = res;
3659 }
3660 tree res_op1;
3661 res_op1 = build_zero_cst (stype);
3662 tree res;
3663 res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
3664 if (TREE_SIDE_EFFECTS (captures[2]))
3665 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
3666 return res;
3667 }
3668 }
3669 return NULL_TREE;
3670}
3671
3672static tree
3673generic_simplify_91 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3674 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3675)
3676{
3677/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3678 if (!TYPE_SATURATING (type))
3679 {
3680/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3681 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
3682 {
3683 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1197, %s:%d\n", __FILE__, __LINE__);
3684 tree res;
3685 res = captures[1];
3686 if (TREE_SIDE_EFFECTS (captures[0]))
3687 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3688 return res;
3689 }
3690 }
3691 return NULL_TREE;
3692}
3693
3694static tree
3695generic_simplify_92 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3696 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3697, enum tree_code ARG_UNUSED (mod))
3698{
3699/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3700 if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0)
3701 {
3702 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3703 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:376, %s:%d\n", __FILE__, __LINE__);
3704 tree res_op0;
3705 res_op0 = captures[0];
3706 tree res_op1;
3707 {
3708 tree ops1[1], res;
3709 {
3710 tree ops2[2], res;
3711 ops2[0] = captures[2];
3712 ops2[1] = build_int_cst (TREE_TYPE (captures[2]), 1);
3713 res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
3714 ops1[0] = res;
3715 }
3716 if (TREE_TYPE (ops1[0]) != type)
3717 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3718 else
3719 res = ops1[0];
3720 res_op1 = res;
3721 }
3722 tree res;
3723 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
3724 return res;
3725 }
3726 return NULL_TREE;
3727}
3728
3729static tree
3730generic_simplify_93 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3731 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3732, enum tree_code ARG_UNUSED (cmp))
3733{
3734 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3735 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2760, %s:%d\n", __FILE__, __LINE__);
3736 tree res_op0;
3737 res_op0 = captures[0];
3738 tree res_op1;
3739 res_op1 = captures[1];
3740 tree res;
3741 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
3742 return res;
3743 return NULL_TREE;
3744}
3745
3746static tree
3747generic_simplify_94 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3748 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3749, enum tree_code ARG_UNUSED (cmp))
3750{
3751 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2766, %s:%d\n", __FILE__, __LINE__);
3752 tree res_op0;
3753 res_op0 = captures[1];
3754 tree res_op1;
3755 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
3756 tree res;
3757 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
3758 if (TREE_SIDE_EFFECTS (captures[0]))
3759 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
3760 return res;
3761 return NULL_TREE;
3762}
3763
3764static tree
3765generic_simplify_95 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3766 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3767)
3768{
3769 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:806, %s:%d\n", __FILE__, __LINE__);
3770 tree res_op0;
3771 res_op0 = captures[0];
3772 tree res;
3773 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3774 if (TREE_SIDE_EFFECTS (captures[2]))
3775 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
3776 return res;
3777 return NULL_TREE;
3778}
3779
3780static tree
3781generic_simplify_96 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3782 tree ARG_UNUSED (op0), tree *captures
3783, combined_fn ARG_UNUSED (fns))
3784{
3785 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3256, %s:%d\n", __FILE__, __LINE__);
3786 tree res;
3787 res = captures[0];
3788 return res;
3789 return NULL_TREE;
3790}
3791
3792static tree
3793generic_simplify_97 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3794 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3795, enum tree_code ARG_UNUSED (op))
3796{
3797/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3798 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
3799 {
3800/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3801 if (single_use (captures[4]) && single_use (captures[5]))
3802 {
3803 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
3804 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
3805 tree res_op0;
3806 res_op0 = captures[0];
3807 tree res_op1;
3808 {
3809 tree ops1[1], res;
3810 ops1[0] = captures[6];
3811 if (TREE_TYPE (ops1[0]) != type)
3812 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3813 else
3814 res = ops1[0];
3815 res_op1 = res;
3816 }
3817 tree res;
3818 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
3819 return res;
3820 }
3821 else
3822 {
3823/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3824 if (single_use (captures[0]) && single_use (captures[1]))
3825 {
3826 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
3827 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
3828 tree res_op0;
3829 {
3830 tree ops1[1], res;
3831 ops1[0] = captures[3];
3832 if (TREE_TYPE (ops1[0]) != type)
3833 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3834 else
3835 res = ops1[0];
3836 res_op0 = res;
3837 }
3838 tree res_op1;
3839 res_op1 = captures[4];
3840 tree res;
3841 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
3842 return res;
3843 }
3844 }
3845 }
3846 return NULL_TREE;
3847}
3848
3849static tree
3850generic_simplify_98 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3851 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3852, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp))
3853{
3854 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
3855 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2785, %s:%d\n", __FILE__, __LINE__);
3856 tree res_op0;
3857 res_op0 = captures[0];
3858 tree res_op1;
3859 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
3860 tree res;
3861 res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
3862 return res;
3863 return NULL_TREE;
3864}
3865
3866static tree
3867generic_simplify_99 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3868 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3869, enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
3870{
3871/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3872 if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])))
3873 {
3874 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1462, %s:%d\n", __FILE__, __LINE__);
3875 tree res_op0;
3876 res_op0 = captures[0];
3877 tree res_op1;
3878 res_op1 = captures[1];
3879 tree res;
3880 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
3881 return res;
3882 }
3883 return NULL_TREE;
3884}
3885
3886static tree
3887generic_simplify_100 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3888 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3889, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop))
3890{
3891/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3892 if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
3893 {
3894 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:794, %s:%d\n", __FILE__, __LINE__);
3895 tree res_op0;
3896 {
3897 tree ops1[1], res;
3898 ops1[0] = captures[0];
3899 if (TREE_TYPE (ops1[0]) != type)
3900 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
3901 else
3902 res = ops1[0];
3903 res_op0 = res;
3904 }
3905 tree res_op1;
3906 {
3907 tree ops1[2], res;
3908 {
3909 tree ops2[1], res;
3910 ops2[0] = captures[1];
3911 if (TREE_TYPE (ops2[0]) != type)
3912 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
3913 else
3914 res = ops2[0];
3915 ops1[0] = res;
3916 }
3917 {
3918 tree ops2[1], res;
3919 ops2[0] = captures[2];
3920 if (TREE_TYPE (ops2[0]) != type)
3921 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
3922 else
3923 res = ops2[0];
3924 ops1[1] = res;
3925 }
3926 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3927 res_op1 = res;
3928 }
3929 tree res;
3930 res = fold_build2_loc (loc, rop, type, res_op0, res_op1);
3931 return res;
3932 }
3933 return NULL_TREE;
3934}
3935
3936static tree
3937generic_simplify_101 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3938 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3939, enum tree_code ARG_UNUSED (cmp))
3940{
3941/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3942 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
3943 {
3944/* #line 1033 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3945 if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1]))
3946 {
3947 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1034, %s:%d\n", __FILE__, __LINE__);
3948 tree res_op0;
3949 res_op0 = captures[0];
3950 tree res_op1;
3951 res_op1 = captures[2];
3952 tree res;
3953 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
3954 if (TREE_SIDE_EFFECTS (captures[1]))
3955 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3956 return res;
3957 }
3958 else
3959 {
3960/* #line 1035 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3961 if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (captures[1], TYPE_SIGN (TREE_TYPE (captures[1]))))
3962 {
3963 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1037, %s:%d\n", __FILE__, __LINE__);
3964 tree res_op0;
3965 res_op0 = captures[2];
3966 tree res_op1;
3967 res_op1 = captures[0];
3968 tree res;
3969 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
3970 if (TREE_SIDE_EFFECTS (captures[1]))
3971 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
3972 return res;
3973 }
3974 }
3975 }
3976 return NULL_TREE;
3977}
3978
3979static tree
3980generic_simplify_102 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
3981 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
3982, combined_fn ARG_UNUSED (POW))
3983{
3984/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3985 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
3986 {
3987/* #line 3310 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
3988 if (!TREE_OVERFLOW (captures[2]))
3989 {
3990 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3311, %s:%d\n", __FILE__, __LINE__);
3991 tree res_op0;
3992 res_op0 = captures[0];
3993 tree res_op1;
3994 {
3995 tree ops1[2], res;
3996 ops1[0] = captures[2];
3997 ops1[1] = build_one_cst (type);
3998 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
3999 res_op1 = res;
4000 }
4001 tree res;
4002 res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
4003 if (!res)
4004 return NULL_TREE;
4005 return res;
4006 }
4007 }
4008 return NULL_TREE;
4009}
4010
4011static tree
4012generic_simplify_103 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4013 tree ARG_UNUSED (op0), tree *captures
4014, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp), enum tree_code ARG_UNUSED (ncmp))
4015{
4016/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4017 if (VECTOR_TYPE_P (type) || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1))
4018 {
4019 {
4020/* #line 2291 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4021 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
4022/* #line 2293 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4023 if (ic == icmp)
4024 {
4025 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2294, %s:%d\n", __FILE__, __LINE__);
4026 tree res_op0;
4027 res_op0 = captures[0];
4028 tree res_op1;
4029 res_op1 = captures[1];
4030 tree res;
4031 res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
4032 return res;
4033 }
4034 else
4035 {
4036/* #line 2295 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4037 if (ic == ncmp)
4038 {
4039 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2296, %s:%d\n", __FILE__, __LINE__);
4040 tree res_op0;
4041 res_op0 = captures[0];
4042 tree res_op1;
4043 res_op1 = captures[1];
4044 tree res;
4045 res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
4046 return res;
4047 }
4048 }
4049 }
4050 }
4051 return NULL_TREE;
4052}
4053
4054static tree
4055generic_simplify_104 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4056 tree ARG_UNUSED (op0), tree *captures
4057)
4058{
4059/* #line 994 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4060 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
4061 {
4062 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:995, %s:%d\n", __FILE__, __LINE__);
4063 tree res_op0;
4064 {
4065 tree ops1[2], res;
4066 ops1[0] = captures[0];
4067 {
4068 tree ops2[1], res;
4069 ops2[0] = captures[1];
4070 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
4071 ops1[1] = res;
4072 }
4073 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
4074 res_op0 = res;
4075 }
4076 tree res;
4077 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4078 return res;
4079 }
4080 return NULL_TREE;
4081}
4082
4083static tree
4084generic_simplify_105 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4085 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4086, combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (SIN))
4087{
4088/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4089 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
4090 {
4091 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3305, %s:%d\n", __FILE__, __LINE__);
4092 tree res_op0;
4093 res_op0 = captures[1];
4094 tree res;
4095 res = maybe_build_call_expr_loc (loc, SIN, type, 1, res_op0);
4096 if (!res)
4097 return NULL_TREE;
4098 return res;
4099 }
4100 return NULL_TREE;
4101}
4102
4103static tree
4104generic_simplify_106 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4105 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4106, enum tree_code ARG_UNUSED (cmp))
4107{
4108 {
4109/* #line 1589 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4110 int cand = wi::ctz (captures[2]) - wi::ctz (captures[0]);
4111/* #line 1590 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4112 if (cand < 0 || (!integer_zerop (captures[2]) && wi::ne_p (wi::lshift (captures[0], cand), captures[2])))
4113 {
4114 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
4115 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4116 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1593, %s:%d\n", __FILE__, __LINE__);
4117 tree res;
4118 res = constant_boolean_node (cmp == NE_EXPR, type);
4119 if (TREE_SIDE_EFFECTS (captures[1]))
4120 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4121 return res;
4122 }
4123 else
4124 {
4125/* #line 1594 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4126 if (!integer_zerop (captures[2]) && wi::eq_p (wi::lshift (captures[0], cand), captures[2]))
4127 {
4128 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
4129 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4130 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1596, %s:%d\n", __FILE__, __LINE__);
4131 tree res_op0;
4132 res_op0 = captures[1];
4133 tree res_op1;
4134 res_op1 = build_int_cst (TREE_TYPE (captures[1]), cand);
4135 tree res;
4136 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4137 return res;
4138 }
4139 }
4140 }
4141 return NULL_TREE;
4142}
4143
4144static tree
4145generic_simplify_107 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4146 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4147, combined_fn ARG_UNUSED (sq), enum tree_code ARG_UNUSED (cmp))
4148{
4149/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4150 if (flag_unsafe_math_optimizations && ! flag_errno_math)
4151 {
4152/* #line 2503 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4153 if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
4154 {
4155/* #line 2506 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4156 if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR)
4157 {
4158 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2507, %s:%d\n", __FILE__, __LINE__);
4159 tree res;
4160 res = constant_boolean_node (false, type);
4161 if (TREE_SIDE_EFFECTS (captures[0]))
4162 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4163 if (TREE_SIDE_EFFECTS (captures[1]))
4164 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4165 return res;
4166 }
4167 else
4168 {
4169/* #line 2510 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4170 if (cmp == NE_EXPR || !HONOR_NANS (captures[0]))
4171 {
4172 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2511, %s:%d\n", __FILE__, __LINE__);
4173 tree res;
4174 res = constant_boolean_node (true, type);
4175 if (TREE_SIDE_EFFECTS (captures[0]))
4176 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4177 if (TREE_SIDE_EFFECTS (captures[1]))
4178 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4179 return res;
4180 }
4181 else
4182 {
4183 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2513, %s:%d\n", __FILE__, __LINE__);
4184 tree res_op0;
4185 res_op0 = captures[0];
4186 tree res_op1;
4187 res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
4188 tree res;
4189 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
4190 if (TREE_SIDE_EFFECTS (captures[1]))
4191 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4192 return res;
4193 }
4194 }
4195 }
4196 else
4197 {
4198/* #line 2514 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4199 if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0))
4200 {
4201/* #line 2517 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4202 if (cmp == LT_EXPR)
4203 {
4204 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2518, %s:%d\n", __FILE__, __LINE__);
4205 tree res;
4206 res = constant_boolean_node (false, type);
4207 if (TREE_SIDE_EFFECTS (captures[0]))
4208 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4209 if (TREE_SIDE_EFFECTS (captures[1]))
4210 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4211 return res;
4212 }
4213 else
4214 {
4215/* #line 2520 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4216 if (cmp == GE_EXPR && !HONOR_NANS (captures[0]))
4217 {
4218 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2521, %s:%d\n", __FILE__, __LINE__);
4219 tree res;
4220 res = constant_boolean_node (true, type);
4221 if (TREE_SIDE_EFFECTS (captures[0]))
4222 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4223 if (TREE_SIDE_EFFECTS (captures[1]))
4224 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4225 return res;
4226 }
4227 else
4228 {
4229/* #line 2523 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4230 if (cmp == LE_EXPR)
4231 {
4232 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2524, %s:%d\n", __FILE__, __LINE__);
4233 tree res_op0;
4234 res_op0 = captures[0];
4235 tree res_op1;
4236 res_op1 = captures[1];
4237 tree res;
4238 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4239 return res;
4240 }
4241 else
4242 {
4243 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2532, %s:%d\n", __FILE__, __LINE__);
4244 tree res_op0;
4245 res_op0 = captures[0];
4246 tree res_op1;
4247 res_op1 = captures[1];
4248 tree res;
4249 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4250 return res;
4251 }
4252 }
4253 }
4254 }
4255 else
4256 {
4257/* #line 2533 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4258 if (cmp == GT_EXPR || cmp == GE_EXPR)
4259 {
4260 {
4261/* #line 2534 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4262 REAL_VALUE_TYPE c2;
4263 real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
4264 real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2);
4265/* #line 2541 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4266 if (REAL_VALUE_ISINF (c2))
4267 {
4268/* #line 2543 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4269 if (HONOR_INFINITIES (captures[0]))
4270 {
4271 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2544, %s:%d\n", __FILE__, __LINE__);
4272 tree res_op0;
4273 res_op0 = captures[0];
4274 tree res_op1;
4275 res_op1 = build_real (TREE_TYPE (captures[0]), c2);
4276 tree res;
4277 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4278 if (TREE_SIDE_EFFECTS (captures[1]))
4279 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4280 return res;
4281 }
4282 else
4283 {
4284 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2545, %s:%d\n", __FILE__, __LINE__);
4285 tree res;
4286 res = constant_boolean_node (false, type);
4287 if (TREE_SIDE_EFFECTS (captures[0]))
4288 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4289 if (TREE_SIDE_EFFECTS (captures[1]))
4290 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4291 return res;
4292 }
4293 }
4294 else
4295 {
4296 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2547, %s:%d\n", __FILE__, __LINE__);
4297 tree res_op0;
4298 res_op0 = captures[0];
4299 tree res_op1;
4300 res_op1 = build_real (TREE_TYPE (captures[0]), c2);
4301 tree res;
4302 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4303 if (TREE_SIDE_EFFECTS (captures[1]))
4304 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4305 return res;
4306 }
4307 }
4308 }
4309 else
4310 {
4311/* #line 2548 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4312 if (cmp == LT_EXPR || cmp == LE_EXPR)
4313 {
4314 {
4315/* #line 2549 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4316 REAL_VALUE_TYPE c2;
4317 real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
4318 real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2);
4319/* #line 2556 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4320 if (REAL_VALUE_ISINF (c2))
4321 {
4322/* #line 2560 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4323 if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0]))
4324 {
4325 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2561, %s:%d\n", __FILE__, __LINE__);
4326 tree res;
4327 res = constant_boolean_node (true, type);
4328 if (TREE_SIDE_EFFECTS (captures[0]))
4329 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4330 if (TREE_SIDE_EFFECTS (captures[1]))
4331 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4332 return res;
4333 }
4334 else
4335 {
4336/* #line 2564 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4337 if (! HONOR_NANS (captures[0]))
4338 {
4339 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2565, %s:%d\n", __FILE__, __LINE__);
4340 tree res_op0;
4341 res_op0 = captures[0];
4342 tree res_op1;
4343 res_op1 = build_real (TREE_TYPE (captures[0]), c2);
4344 tree res;
4345 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4346 if (TREE_SIDE_EFFECTS (captures[1]))
4347 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4348 return res;
4349 }
4350 else
4351 {
4352/* #line 2568 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4353 if (! HONOR_INFINITIES (captures[0]))
4354 {
4355 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2569, %s:%d\n", __FILE__, __LINE__);
4356 tree res_op0;
4357 res_op0 = captures[0];
4358 tree res_op1;
4359 res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
4360 tree res;
4361 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
4362 if (TREE_SIDE_EFFECTS (captures[1]))
4363 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4364 return res;
4365 }
4366 else
4367 {
4368/* #line 2571 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4369 if (1)
4370 {
4371 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2572, %s:%d\n", __FILE__, __LINE__);
4372 if (! tree_invariant_p (captures[0])) return NULL_TREE;
4373 tree res_op0;
4374 {
4375 tree ops1[2], res;
4376 ops1[0] = unshare_expr (captures[0]);
4377 ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
4378 res = fold_build2_loc (loc, GE_EXPR, type, ops1[0], ops1[1]);
4379 res_op0 = res;
4380 }
4381 tree res_op1;
4382 {
4383 tree ops1[2], res;
4384 ops1[0] = captures[0];
4385 ops1[1] = build_real (TREE_TYPE (captures[0]), c2);
4386 res = fold_build2_loc (loc, NE_EXPR, type, ops1[0], ops1[1]);
4387 res_op1 = res;
4388 }
4389 tree res;
4390 res = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
4391 if (TREE_SIDE_EFFECTS (captures[1]))
4392 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4393 return res;
4394 }
4395 }
4396 }
4397 }
4398 }
4399 else
4400 {
4401/* #line 2576 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4402 if (! HONOR_NANS (captures[0]))
4403 {
4404 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2577, %s:%d\n", __FILE__, __LINE__);
4405 tree res_op0;
4406 res_op0 = captures[0];
4407 tree res_op1;
4408 res_op1 = build_real (TREE_TYPE (captures[0]), c2);
4409 tree res;
4410 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4411 if (TREE_SIDE_EFFECTS (captures[1]))
4412 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4413 return res;
4414 }
4415 else
4416 {
4417/* #line 2579 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4418 if (1)
4419 {
4420 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2580, %s:%d\n", __FILE__, __LINE__);
4421 if (! tree_invariant_p (captures[0])) return NULL_TREE;
4422 tree res_op0;
4423 {
4424 tree ops1[2], res;
4425 ops1[0] = unshare_expr (captures[0]);
4426 ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
4427 res = fold_build2_loc (loc, GE_EXPR, type, ops1[0], ops1[1]);
4428 res_op0 = res;
4429 }
4430 tree res_op1;
4431 {
4432 tree ops1[2], res;
4433 ops1[0] = captures[0];
4434 ops1[1] = build_real (TREE_TYPE (captures[0]), c2);
4435 res = fold_build2_loc (loc, cmp, type, ops1[0], ops1[1]);
4436 res_op1 = res;
4437 }
4438 tree res;
4439 res = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
4440 if (TREE_SIDE_EFFECTS (captures[1]))
4441 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4442 return res;
4443 }
4444 }
4445 }
4446 }
4447 }
4448 }
4449 }
4450 }
4451 }
4452 return NULL_TREE;
4453}
4454
4455static tree
4456generic_simplify_108 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4457 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4458, enum tree_code ARG_UNUSED (shift))
4459{
4460/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4461 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
4462 {
4463 {
4464/* #line 1610 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4465 unsigned int shiftc = tree_to_uhwi (captures[4]);
4466 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
4467 unsigned HOST_WIDE_INT newmask, zerobits = 0;
4468 tree shift_type = TREE_TYPE (captures[2]);
4469 unsigned int prec;
4470 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
4471 else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (shift_type)))) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
4472 tree arg00 = captures[3];
4473 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
4474 if ((TYPE_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (inner_type))) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
4475 if (shiftc < prec) shift_type = inner_type;
4476 } } zerobits = HOST_WIDE_INT_M1U;
4477 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
4478 zerobits <<= prec - shiftc;
4479 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
4480 else zerobits = 0;
4481 } }/* #line 1666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4482 if ((mask & zerobits) == mask)
4483 {
4484 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4485 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
4486 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
4487 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
4488 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__);
4489 tree res;
4490 res = build_int_cst (type, 0);
4491 return res;
4492 }
4493 else
4494 {
4495 {
4496/* #line 1668 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4497 newmask = mask | zerobits;
4498/* #line 1669 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4499 if (newmask != mask && (newmask & (newmask + 1)) == 0)
4500 {
4501 {
4502/* #line 1670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4503 for (prec = BITS_PER_UNIT;
4504 prec < HOST_BITS_PER_WIDE_INT;
4505 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
4506/* #line 1679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4507 if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
4508 {
4509 {
4510/* #line 1681 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4511 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
4512/* #line 1683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4513 if (!tree_int_cst_equal (newmaskt, captures[5]))
4514 {
4515/* #line 1684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4516 if (shift_type != TREE_TYPE (captures[2]))
4517 {
4518 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
4519 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
4520 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__);
4521 tree res_op0;
4522 {
4523 tree ops1[1], res;
4524 {
4525 tree ops2[2], res;
4526 {
4527 tree ops3[1], res;
4528 ops3[0] = captures[2];
4529 if (TREE_TYPE (ops3[0]) != shift_type)
4530 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
4531 else
4532 res = ops3[0];
4533 ops2[0] = res;
4534 }
4535 ops2[1] = captures[4];
4536 res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
4537 ops1[0] = res;
4538 }
4539 if (TREE_TYPE (ops1[0]) != type)
4540 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
4541 else
4542 res = ops1[0];
4543 res_op0 = res;
4544 }
4545 tree res_op1;
4546 res_op1 = newmaskt;
4547 tree res;
4548 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
4549 return res;
4550 }
4551 else
4552 {
4553 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
4554 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
4555 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__);
4556 tree res_op0;
4557 res_op0 = captures[0];
4558 tree res_op1;
4559 res_op1 = newmaskt;
4560 tree res;
4561 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
4562 return res;
4563 }
4564 }
4565 }
4566 }
4567 }
4568 }
4569 }
4570 }
4571 }
4572 }
4573 return NULL_TREE;
4574}
4575
4576static tree
4577generic_simplify_109 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4578 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4579, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
4580{
4581/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4582 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
4583 {
4584 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
4585 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3071, %s:%d\n", __FILE__, __LINE__);
4586 tree res_op0;
4587 {
4588 tree ops1[1], res;
4589 ops1[0] = captures[0];
4590 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
4591 res_op0 = res;
4592 }
4593 tree res_op1;
4594 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
4595 tree res;
4596 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
4597 return res;
4598 }
4599 return NULL_TREE;
4600}
4601
4602static tree
4603generic_simplify_110 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4604 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4605, enum tree_code ARG_UNUSED (mod))
4606{
4607/* #line 315 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4608 if (!integer_zerop (captures[0]))
4609 {
4610 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:316, %s:%d\n", __FILE__, __LINE__);
4611 tree res;
4612 res = build_zero_cst (type);
4613 if (TREE_SIDE_EFFECTS (captures[0]))
4614 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4615 return res;
4616 }
4617 return NULL_TREE;
4618}
4619
4620static tree
4621generic_simplify_111 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4622 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4623, enum tree_code ARG_UNUSED (cmp))
4624{
4625/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4626 if (single_use (captures[0]) && single_use (captures[2]))
4627 {
4628 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2371, %s:%d\n", __FILE__, __LINE__);
4629 tree res_op0;
4630 res_op0 = captures[3];
4631 tree res_op1;
4632 res_op1 = captures[1];
4633 tree res;
4634 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4635 return res;
4636 }
4637 return NULL_TREE;
4638}
4639
4640static tree
4641generic_simplify_112 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4642 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4643, enum tree_code ARG_UNUSED (cmp))
4644{
4645/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4646 if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[2]))))
4647 {
4648 {
4649/* #line 2391 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4650 tree type1 = TREE_TYPE (captures[2]);
4651 if (TREE_CODE (captures[2]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1)) { REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[2]);
4652 if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node) && exact_real_truncate (TYPE_MODE (float_type_node), &orig)) type1 = float_type_node;
4653 if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node) && exact_real_truncate (TYPE_MODE (double_type_node), &orig)) type1 = double_type_node;
4654 } tree newtype = (TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (type1) ? TREE_TYPE (captures[1]) : type1);
4655/* #line 2408 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4656 if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (newtype))
4657 {
4658 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2409, %s:%d\n", __FILE__, __LINE__);
4659 tree res_op0;
4660 {
4661 tree ops1[1], res;
4662 ops1[0] = captures[1];
4663 if (TREE_TYPE (ops1[0]) != newtype)
4664 res = fold_build1_loc (loc, NOP_EXPR, newtype, ops1[0]);
4665 else
4666 res = ops1[0];
4667 res_op0 = res;
4668 }
4669 tree res_op1;
4670 {
4671 tree ops1[1], res;
4672 ops1[0] = captures[2];
4673 if (TREE_TYPE (ops1[0]) != newtype)
4674 res = fold_build1_loc (loc, NOP_EXPR, newtype, ops1[0]);
4675 else
4676 res = ops1[0];
4677 res_op1 = res;
4678 }
4679 tree res;
4680 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
4681 return res;
4682 }
4683 }
4684 }
4685 return NULL_TREE;
4686}
4687
4688static tree
4689generic_simplify_113 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4690 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4691)
4692{
4693 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
4694 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2625, %s:%d\n", __FILE__, __LINE__);
4695 tree res;
4696 res = captures[1];
4697 return res;
4698 return NULL_TREE;
4699}
4700
4701static tree
4702generic_simplify_114 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4703 tree ARG_UNUSED (op0), tree *captures
4704)
4705{
4706/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4707 if (!TYPE_SATURATING (type))
4708 {
4709/* #line 1180 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4710 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (type))
4711 {
4712 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1182, %s:%d\n", __FILE__, __LINE__);
4713 tree res_op0;
4714 res_op0 = captures[0];
4715 tree res;
4716 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4717 return res;
4718 }
4719 }
4720 return NULL_TREE;
4721}
4722
4723static tree
4724generic_simplify_115 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4725 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4726)
4727{
4728 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:580, %s:%d\n", __FILE__, __LINE__);
4729 tree res_op0;
4730 res_op0 = captures[0];
4731 tree res_op1;
4732 res_op1 = captures[1];
4733 tree res;
4734 res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
4735 return res;
4736 return NULL_TREE;
4737}
4738
4739static tree
4740generic_simplify_116 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4741 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4742)
4743{
4744/* #line 343 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4745 if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type) && !TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && (expr_not_equal_to (captures[0], TYPE_MIN_VALUE (type)) || expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (TREE_TYPE (captures[1]))))))
4746 {
4747 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:353, %s:%d\n", __FILE__, __LINE__);
4748 tree res_op0;
4749 res_op0 = captures[0];
4750 tree res_op1;
4751 {
4752 tree ops1[1], res;
4753 ops1[0] = captures[1];
4754 if (TREE_TYPE (ops1[0]) != type)
4755 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
4756 else
4757 res = ops1[0];
4758 res_op1 = res;
4759 }
4760 tree res;
4761 res = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
4762 return res;
4763 }
4764 return NULL_TREE;
4765}
4766
4767static tree
4768generic_simplify_117 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4769 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4770, enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop))
4771{
4772 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:917, %s:%d\n", __FILE__, __LINE__);
4773 tree res_op0;
4774 res_op0 = captures[0];
4775 tree res_op1;
4776 res_op1 = captures[1];
4777 tree res;
4778 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
4779 return res;
4780 return NULL_TREE;
4781}
4782
4783static tree
4784generic_simplify_118 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4785 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4786, enum tree_code ARG_UNUSED (op))
4787{
4788 {
4789/* #line 1558 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4790 unsigned int prec = element_precision (type);
4791/* #line 1559 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4792 if (wi::ge_p (captures[1], 0, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::lt_p (captures[1], prec, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::ge_p (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) && wi::lt_p (captures[2], prec, TYPE_SIGN (TREE_TYPE (captures[2]))))
4793 {
4794 {
4795/* #line 1563 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4796 unsigned int low = wi::add (captures[1], captures[2]).to_uhwi ();
4797/* #line 1566 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4798 if (low >= prec)
4799 {
4800/* #line 1567 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4801 if (op == LROTATE_EXPR || op == RROTATE_EXPR)
4802 {
4803 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
4804 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4805 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1568, %s:%d\n", __FILE__, __LINE__);
4806 tree res_op0;
4807 res_op0 = captures[0];
4808 tree res_op1;
4809 res_op1 = build_int_cst (TREE_TYPE (captures[1]), low % prec);
4810 tree res;
4811 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
4812 return res;
4813 }
4814 else
4815 {
4816/* #line 1569 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4817 if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR)
4818 {
4819 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
4820 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4821 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1570, %s:%d\n", __FILE__, __LINE__);
4822 tree res;
4823 res = build_zero_cst (type);
4824 if (TREE_SIDE_EFFECTS (captures[0]))
4825 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4826 return res;
4827 }
4828 else
4829 {
4830 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
4831 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4832 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1571, %s:%d\n", __FILE__, __LINE__);
4833 tree res_op0;
4834 res_op0 = captures[0];
4835 tree res_op1;
4836 res_op1 = build_int_cst (TREE_TYPE (captures[1]), prec - 1);
4837 tree res;
4838 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
4839 return res;
4840 }
4841 }
4842 }
4843 else
4844 {
4845 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
4846 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
4847 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1572, %s:%d\n", __FILE__, __LINE__);
4848 tree res_op0;
4849 res_op0 = captures[0];
4850 tree res_op1;
4851 res_op1 = build_int_cst (TREE_TYPE (captures[1]), low);
4852 tree res;
4853 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
4854 return res;
4855 }
4856 }
4857 }
4858 }
4859 return NULL_TREE;
4860}
4861
4862static tree
4863generic_simplify_119 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4864 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4865, enum tree_code ARG_UNUSED (bitop))
4866{
4867 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:928, %s:%d\n", __FILE__, __LINE__);
4868 tree res_op0;
4869 res_op0 = captures[0];
4870 tree res_op1;
4871 {
4872 tree ops1[2], res;
4873 ops1[0] = captures[1];
4874 ops1[1] = captures[2];
4875 res = fold_build2_loc (loc, bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
4876 res_op1 = res;
4877 }
4878 tree res;
4879 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
4880 return res;
4881 return NULL_TREE;
4882}
4883
4884static tree
4885generic_simplify_120 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4886 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4887)
4888{
4889 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1351, %s:%d\n", __FILE__, __LINE__);
4890 tree res;
4891 res = captures[1];
4892 if (TREE_SIDE_EFFECTS (captures[0]))
4893 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
4894 return res;
4895 return NULL_TREE;
4896}
4897
4898static tree
4899generic_simplify_121 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4900 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4901, enum tree_code ARG_UNUSED (cmp))
4902{
4903/* #line 2737 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4904 if (SSA_NAME_IS_DEFAULT_DEF (captures[1]) && TREE_CODE (SSA_NAME_VAR (captures[1])) == PARM_DECL)
4905 {
4906 {
4907/* #line 2739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4908 tree base = get_base_address (TREE_OPERAND (captures[0], 0));
4909/* #line 2740 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4910 if (TREE_CODE (base) == VAR_DECL && auto_var_in_fn_p (base, current_function_decl))
4911 {
4912/* #line 2742 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4913 if (cmp == NE_EXPR)
4914 {
4915 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
4916 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2743, %s:%d\n", __FILE__, __LINE__);
4917 tree res;
4918 res = constant_boolean_node (true, type);
4919 if (TREE_SIDE_EFFECTS (captures[1]))
4920 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4921 return res;
4922 }
4923 else
4924 {
4925 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
4926 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2744, %s:%d\n", __FILE__, __LINE__);
4927 tree res;
4928 res = constant_boolean_node (false, type);
4929 if (TREE_SIDE_EFFECTS (captures[1]))
4930 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4931 return res;
4932 }
4933 }
4934 }
4935 }
4936 return NULL_TREE;
4937}
4938
4939static tree
4940generic_simplify_122 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4941 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4942)
4943{
4944 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
4945 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2628, %s:%d\n", __FILE__, __LINE__);
4946 tree res;
4947 res = captures[1];
4948 return res;
4949 return NULL_TREE;
4950}
4951
4952static tree
4953generic_simplify_123 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4954 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4955, enum tree_code ARG_UNUSED (cmp))
4956{
4957/* #line 2753 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4958 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && wi::bit_and_not (captures[2], captures[3]) != 0)
4959 {
4960 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2755, %s:%d\n", __FILE__, __LINE__);
4961 tree res;
4962 res = constant_boolean_node (cmp == NE_EXPR, type);
4963 if (TREE_SIDE_EFFECTS (captures[1]))
4964 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
4965 if (TREE_SIDE_EFFECTS (captures[2]))
4966 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
4967 if (TREE_SIDE_EFFECTS (captures[3]))
4968 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
4969 return res;
4970 }
4971 return NULL_TREE;
4972}
4973
4974static tree
4975generic_simplify_124 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4976 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4977, enum tree_code ARG_UNUSED (op))
4978{
4979 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2670, %s:%d\n", __FILE__, __LINE__);
4980 tree res_op0;
4981 res_op0 = captures[0];
4982 tree res_op1;
4983 res_op1 = captures[1];
4984 tree res;
4985 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
4986 return res;
4987 return NULL_TREE;
4988}
4989
4990static tree
4991generic_simplify_125 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
4992 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
4993, enum tree_code ARG_UNUSED (mod))
4994{
4995/* #line 300 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
4996 if (!integer_zerop (captures[1]))
4997 {
4998 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:301, %s:%d\n", __FILE__, __LINE__);
4999 tree res;
5000 res = captures[0];
5001 if (TREE_SIDE_EFFECTS (captures[1]))
5002 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5003 return res;
5004 }
5005 return NULL_TREE;
5006}
5007
5008static tree
5009generic_simplify_126 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5010 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5011, combined_fn ARG_UNUSED (FMIN))
5012{
5013/* #line 1431 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5014 if (flag_finite_math_only)
5015 {
5016 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1434, %s:%d\n", __FILE__, __LINE__);
5017 tree res_op0;
5018 res_op0 = captures[0];
5019 tree res_op1;
5020 res_op1 = captures[1];
5021 tree res;
5022 res = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
5023 return res;
5024 }
5025 return NULL_TREE;
5026}
5027
5028static tree
5029generic_simplify_127 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5030 tree ARG_UNUSED (op0), tree *captures
5031, combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos))
5032{
5033/* #line 3470 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5034 if (optimize && canonicalize_math_p () && targetm.libc_has_function (function_c99_misc))
5035 {
5036 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3474, %s:%d\n", __FILE__, __LINE__);
5037 tree res_op0;
5038 {
5039 tree ops1[1], res;
5040 ops1[0] = captures[0];
5041 {
5042 res = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (ops1[0]), 1, ops1[0]);
5043 if (!res)
5044 return NULL_TREE;
5045 }
5046 res_op0 = res;
5047 }
5048 tree res;
5049 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5050 return res;
5051 }
5052 return NULL_TREE;
5053}
5054
5055static tree
5056generic_simplify_128 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5057 tree ARG_UNUSED (op0), tree *captures
5058, combined_fn ARG_UNUSED (bswap))
5059{
5060 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1978, %s:%d\n", __FILE__, __LINE__);
5061 tree res_op0;
5062 res_op0 = captures[0];
5063 tree res;
5064 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
5065 return res;
5066 return NULL_TREE;
5067}
5068
5069static tree
5070generic_simplify_129 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5071 tree ARG_UNUSED (op0), tree *captures
5072, enum tree_code ARG_UNUSED (bitop), combined_fn ARG_UNUSED (bswap))
5073{
5074 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1982, %s:%d\n", __FILE__, __LINE__);
5075 tree res_op0;
5076 res_op0 = captures[0];
5077 tree res_op1;
5078 {
5079 tree ops1[1], res;
5080 ops1[0] = captures[1];
5081 {
5082 res = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (ops1[0]), 1, ops1[0]);
5083 if (!res)
5084 return NULL_TREE;
5085 }
5086 res_op1 = res;
5087 }
5088 tree res;
5089 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
5090 return res;
5091 return NULL_TREE;
5092}
5093
5094static tree
5095generic_simplify_130 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5096 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5097)
5098{
5099/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5100 if (!TYPE_SATURATING (type))
5101 {
5102/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5103 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
5104 {
5105 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1206, %s:%d\n", __FILE__, __LINE__);
5106 tree res_op0;
5107 res_op0 = captures[1];
5108 tree res;
5109 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
5110 if (TREE_SIDE_EFFECTS (captures[0]))
5111 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
5112 return res;
5113 }
5114 }
5115 return NULL_TREE;
5116}
5117
5118static tree
5119generic_simplify_131 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5120 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5121, enum tree_code ARG_UNUSED (cmp))
5122{
5123/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5124 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && TREE_CODE (TREE_TYPE (captures[1])) == POINTER_TYPE && TREE_CODE (TREE_TYPE (TREE_TYPE (captures[1]))) == FUNCTION_TYPE) && single_use (captures[0]))
5125 {
5126/* #line 2683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5127 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || (captures[2] != captures[3] && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0])) || cmp == NE_EXPR || cmp == EQ_EXPR) && (POINTER_TYPE_P (TREE_TYPE (captures[1])) == POINTER_TYPE_P (TREE_TYPE (captures[0]))))
5128 {
5129/* #line 2693 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5130 if (TREE_CODE (captures[2]) == INTEGER_CST)
5131 {
5132 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5133 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2694, %s:%d\n", __FILE__, __LINE__);
5134 tree res_op0;
5135 res_op0 = captures[1];
5136 tree res_op1;
5137 res_op1 = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
5138 tree res;
5139 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
5140 if (TREE_SIDE_EFFECTS (captures[3]))
5141 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
5142 return res;
5143 }
5144 else
5145 {
5146 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
5147 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2696, %s:%d\n", __FILE__, __LINE__);
5148 tree res_op0;
5149 res_op0 = captures[1];
5150 tree res_op1;
5151 {
5152 tree ops1[1], res;
5153 ops1[0] = captures[2];
5154 if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
5155 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
5156 else
5157 res = ops1[0];
5158 res_op1 = res;
5159 }
5160 tree res;
5161 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
5162 return res;
5163 }
5164 }
5165 else
5166 {
5167/* #line 2698 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5168 if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
5169 {
5170/* #line 2700 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5171 if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1])))))
5172 {
5173 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2712, %s:%d\n", __FILE__, __LINE__);
5174 tree res_op0;
5175 res_op0 = captures[1];
5176 tree res_op1;
5177 {
5178 tree ops1[1], res;
5179 ops1[0] = captures[3];
5180 if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
5181 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
5182 else
5183 res = ops1[0];
5184 res_op1 = res;
5185 }
5186 tree res;
5187 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
5188 return res;
5189 }
5190 else
5191 {
5192/* #line 2713 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5193 if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1])))
5194 {
5195 {
5196/* #line 2716 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5197 tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
5198 tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
5199 bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3]));
5200 bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min));
5201/* #line 2723 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5202 if (above || below)
5203 {
5204/* #line 2724 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5205 if (cmp == EQ_EXPR || cmp == NE_EXPR)
5206 {
5207 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2725, %s:%d\n", __FILE__, __LINE__);
5208 tree res;
5209 res = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
5210 if (TREE_SIDE_EFFECTS (captures[1]))
5211 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5212 if (TREE_SIDE_EFFECTS (captures[3]))
5213 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
5214 return res;
5215 }
5216 else
5217 {
5218/* #line 2726 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5219 if (cmp == LT_EXPR || cmp == LE_EXPR)
5220 {
5221 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2727, %s:%d\n", __FILE__, __LINE__);
5222 tree res;
5223 res = constant_boolean_node (above ? true : false, type);
5224 if (TREE_SIDE_EFFECTS (captures[1]))
5225 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5226 if (TREE_SIDE_EFFECTS (captures[3]))
5227 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
5228 return res;
5229 }
5230 else
5231 {
5232/* #line 2728 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5233 if (cmp == GT_EXPR || cmp == GE_EXPR)
5234 {
5235 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2729, %s:%d\n", __FILE__, __LINE__);
5236 tree res;
5237 res = constant_boolean_node (above ? false : true, type);
5238 if (TREE_SIDE_EFFECTS (captures[1]))
5239 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5240 if (TREE_SIDE_EFFECTS (captures[3]))
5241 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
5242 return res;
5243 }
5244 }
5245 }
5246 }
5247 }
5248 }
5249 }
5250 }
5251 }
5252 }
5253 return NULL_TREE;
5254}
5255
5256static tree
5257generic_simplify_132 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5258 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5259, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
5260{
5261/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5262 if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
5263 {
5264 {
5265/* #line 3088 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5266 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
5267 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5268 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3089, %s:%d\n", __FILE__, __LINE__);
5269 tree res_op0;
5270 {
5271 tree ops1[1], res;
5272 {
5273 tree ops2[2], res;
5274 ops2[0] = captures[2];
5275 ops2[1] = captures[1];
5276 {
5277 res = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, ops2[0], ops2[1]);
5278 if (!res)
5279 return NULL_TREE;
5280 }
5281 ops1[0] = res;
5282 }
5283 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
5284 res_op0 = res;
5285 }
5286 tree res_op1;
5287 res_op1 = build_zero_cst (t);
5288 tree res;
5289 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
5290 return res;
5291 }
5292 }
5293 return NULL_TREE;
5294}
5295
5296static tree
5297generic_simplify_133 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5298 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5299, enum tree_code ARG_UNUSED (op))
5300{
5301 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:624, %s:%d\n", __FILE__, __LINE__);
5302 tree res_op0;
5303 res_op0 = build_all_ones_cst (TREE_TYPE (captures[0]));
5304 tree res;
5305 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5306 if (TREE_SIDE_EFFECTS (captures[0]))
5307 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
5308 return res;
5309 return NULL_TREE;
5310}
5311
5312static tree
5313generic_simplify_134 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5314 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5315, enum tree_code ARG_UNUSED (div))
5316{
5317/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5318 if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
5319 {
5320 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:398, %s:%d\n", __FILE__, __LINE__);
5321 tree res;
5322 res = captures[0];
5323 if (TREE_SIDE_EFFECTS (captures[1]))
5324 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5325 return res;
5326 }
5327 return NULL_TREE;
5328}
5329
5330static tree
5331generic_simplify_135 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5332 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5333, combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (TAN))
5334{
5335/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5336 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
5337 {
5338 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3321, %s:%d\n", __FILE__, __LINE__);
5339 tree res_op0;
5340 res_op0 = build_one_cst (type);
5341 tree res_op1;
5342 {
5343 tree ops1[1], res;
5344 ops1[0] = captures[1];
5345 {
5346 res = maybe_build_call_expr_loc (loc, TAN, TREE_TYPE (ops1[0]), 1, ops1[0]);
5347 if (!res)
5348 return NULL_TREE;
5349 }
5350 res_op1 = res;
5351 }
5352 tree res;
5353 res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
5354 return res;
5355 }
5356 return NULL_TREE;
5357}
5358
5359static tree
5360generic_simplify_136 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5361 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5362, combined_fn ARG_UNUSED (copysigns))
5363{
5364/* #line 476 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5365 if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
5366 {
5367 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:477, %s:%d\n", __FILE__, __LINE__);
5368 tree res_op0;
5369 {
5370 tree ops1[1], res;
5371 ops1[0] = captures[0];
5372 res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
5373 res_op0 = res;
5374 }
5375 tree res;
5376 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
5377 if (TREE_SIDE_EFFECTS (captures[1]))
5378 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5379 return res;
5380 }
5381 else
5382 {
5383 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:478, %s:%d\n", __FILE__, __LINE__);
5384 tree res_op0;
5385 res_op0 = captures[0];
5386 tree res;
5387 res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
5388 if (TREE_SIDE_EFFECTS (captures[1]))
5389 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5390 return res;
5391 }
5392 return NULL_TREE;
5393}
5394
5395static tree
5396generic_simplify_137 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5397 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5398, enum tree_code ARG_UNUSED (shift))
5399{
5400/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5401 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
5402 {
5403 {
5404/* #line 1610 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5405 unsigned int shiftc = tree_to_uhwi (captures[4]);
5406 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
5407 unsigned HOST_WIDE_INT newmask, zerobits = 0;
5408 tree shift_type = TREE_TYPE (captures[2]);
5409 unsigned int prec;
5410 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
5411 else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (shift_type)))) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
5412 tree arg00 = captures[3];
5413 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
5414 if ((TYPE_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (inner_type))) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
5415 if (shiftc < prec) shift_type = inner_type;
5416 } } zerobits = HOST_WIDE_INT_M1U;
5417 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
5418 zerobits <<= prec - shiftc;
5419 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
5420 else zerobits = 0;
5421 } }/* #line 1666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5422 if ((mask & zerobits) == mask)
5423 {
5424 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5425 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
5426 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
5427 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__);
5428 tree res;
5429 res = build_int_cst (type, 0);
5430 return res;
5431 }
5432 else
5433 {
5434 {
5435/* #line 1668 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5436 newmask = mask | zerobits;
5437/* #line 1669 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5438 if (newmask != mask && (newmask & (newmask + 1)) == 0)
5439 {
5440 {
5441/* #line 1670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5442 for (prec = BITS_PER_UNIT;
5443 prec < HOST_BITS_PER_WIDE_INT;
5444 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
5445/* #line 1679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5446 if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
5447 {
5448 {
5449/* #line 1681 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5450 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
5451/* #line 1683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5452 if (!tree_int_cst_equal (newmaskt, captures[5]))
5453 {
5454/* #line 1684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5455 if (shift_type != TREE_TYPE (captures[2]))
5456 {
5457 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5458 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
5459 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
5460 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__);
5461 tree res_op0;
5462 {
5463 tree ops1[1], res;
5464 {
5465 tree ops2[2], res;
5466 {
5467 tree ops3[1], res;
5468 ops3[0] = captures[2];
5469 if (TREE_TYPE (ops3[0]) != shift_type)
5470 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
5471 else
5472 res = ops3[0];
5473 ops2[0] = res;
5474 }
5475 ops2[1] = captures[4];
5476 res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
5477 ops1[0] = res;
5478 }
5479 if (TREE_TYPE (ops1[0]) != type)
5480 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
5481 else
5482 res = ops1[0];
5483 res_op0 = res;
5484 }
5485 tree res_op1;
5486 res_op1 = newmaskt;
5487 tree res;
5488 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
5489 return res;
5490 }
5491 else
5492 {
5493 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5494 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
5495 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__);
5496 tree res_op0;
5497 res_op0 = captures[0];
5498 tree res_op1;
5499 res_op1 = newmaskt;
5500 tree res;
5501 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
5502 return res;
5503 }
5504 }
5505 }
5506 }
5507 }
5508 }
5509 }
5510 }
5511 }
5512 }
5513 return NULL_TREE;
5514}
5515
5516static tree
5517generic_simplify_138 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5518 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5519)
5520{
5521 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1004, %s:%d\n", __FILE__, __LINE__);
5522 if (! tree_invariant_p (captures[1])) return NULL_TREE;
5523 tree res_op0;
5524 {
5525 tree ops1[2], res;
5526 {
5527 tree ops2[2], res;
5528 ops2[0] = unshare_expr (captures[1]);
5529 ops2[1] = captures[4];
5530 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
5531 ops1[0] = res;
5532 }
5533 ops1[1] = captures[2];
5534 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
5535 res_op0 = res;
5536 }
5537 tree res_op1;
5538 res_op1 = captures[1];
5539 tree res;
5540 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
5541 return res;
5542 return NULL_TREE;
5543}
5544
5545static tree
5546generic_simplify_139 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5547 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5548)
5549{
5550/* #line 508 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5551 if (! FLOAT_TYPE_P (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
5552 {
5553 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:510, %s:%d\n", __FILE__, __LINE__);
5554 tree res_op0;
5555 res_op0 = captures[0];
5556 tree res_op1;
5557 res_op1 = captures[2];
5558 tree res;
5559 res = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
5560 if (TREE_SIDE_EFFECTS (captures[1]))
5561 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5562 return res;
5563 }
5564 return NULL_TREE;
5565}
5566
5567static tree
5568generic_simplify_140 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5569 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5570, enum tree_code ARG_UNUSED (cmp))
5571{
5572/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5573 if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
5574 {
5575 {
5576/* #line 2949 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5577 tree arg1_type = TREE_TYPE (captures[2]);
5578 unsigned int prec = TYPE_PRECISION (arg1_type);
5579 wide_int max = wi::max_value (arg1_type);
5580 wide_int signed_max = wi::max_value (prec, SIGNED);
5581 wide_int min = wi::min_value (arg1_type);
5582/* #line 2958 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5583 if (wi::eq_p (captures[2], max))
5584 {
5585/* #line 2960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5586 if (cmp == GT_EXPR)
5587 {
5588 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2961, %s:%d\n", __FILE__, __LINE__);
5589 tree res;
5590 res = constant_boolean_node (false, type);
5591 if (TREE_SIDE_EFFECTS (captures[1]))
5592 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5593 if (TREE_SIDE_EFFECTS (captures[2]))
5594 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5595 return res;
5596 }
5597 else
5598 {
5599/* #line 2962 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5600 if (cmp == GE_EXPR)
5601 {
5602 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5603 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2963, %s:%d\n", __FILE__, __LINE__);
5604 tree res_op0;
5605 res_op0 = captures[0];
5606 tree res_op1;
5607 res_op1 = captures[2];
5608 tree res;
5609 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5610 return res;
5611 }
5612 else
5613 {
5614/* #line 2964 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5615 if (cmp == LE_EXPR)
5616 {
5617 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2965, %s:%d\n", __FILE__, __LINE__);
5618 tree res;
5619 res = constant_boolean_node (true, type);
5620 if (TREE_SIDE_EFFECTS (captures[1]))
5621 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5622 if (TREE_SIDE_EFFECTS (captures[2]))
5623 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5624 return res;
5625 }
5626 else
5627 {
5628/* #line 2966 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5629 if (cmp == LT_EXPR)
5630 {
5631 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5632 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2967, %s:%d\n", __FILE__, __LINE__);
5633 tree res_op0;
5634 res_op0 = captures[0];
5635 tree res_op1;
5636 res_op1 = captures[2];
5637 tree res;
5638 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5639 return res;
5640 }
5641 }
5642 }
5643 }
5644 }
5645 else
5646 {
5647/* #line 2968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5648 if (wi::eq_p (captures[2], min))
5649 {
5650/* #line 2970 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5651 if (cmp == LT_EXPR)
5652 {
5653 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2971, %s:%d\n", __FILE__, __LINE__);
5654 tree res;
5655 res = constant_boolean_node (false, type);
5656 if (TREE_SIDE_EFFECTS (captures[1]))
5657 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5658 if (TREE_SIDE_EFFECTS (captures[2]))
5659 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5660 return res;
5661 }
5662 else
5663 {
5664/* #line 2972 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5665 if (cmp == LE_EXPR)
5666 {
5667 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5668 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2973, %s:%d\n", __FILE__, __LINE__);
5669 tree res_op0;
5670 res_op0 = captures[0];
5671 tree res_op1;
5672 res_op1 = captures[2];
5673 tree res;
5674 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5675 return res;
5676 }
5677 else
5678 {
5679/* #line 2974 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5680 if (cmp == GE_EXPR)
5681 {
5682 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2975, %s:%d\n", __FILE__, __LINE__);
5683 tree res;
5684 res = constant_boolean_node (true, type);
5685 if (TREE_SIDE_EFFECTS (captures[1]))
5686 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5687 if (TREE_SIDE_EFFECTS (captures[2]))
5688 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5689 return res;
5690 }
5691 else
5692 {
5693/* #line 2976 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5694 if (cmp == GT_EXPR)
5695 {
5696 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5697 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2977, %s:%d\n", __FILE__, __LINE__);
5698 tree res_op0;
5699 res_op0 = captures[0];
5700 tree res_op1;
5701 res_op1 = captures[2];
5702 tree res;
5703 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5704 return res;
5705 }
5706 }
5707 }
5708 }
5709 }
5710 else
5711 {
5712/* #line 2978 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5713 if (wi::eq_p (captures[2], max - 1))
5714 {
5715/* #line 2980 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5716 if (cmp == GT_EXPR)
5717 {
5718 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5719 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5720 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2981, %s:%d\n", __FILE__, __LINE__);
5721 tree res_op0;
5722 res_op0 = captures[0];
5723 tree res_op1;
5724 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1));
5725 tree res;
5726 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5727 return res;
5728 }
5729 else
5730 {
5731/* #line 2982 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5732 if (cmp == LE_EXPR)
5733 {
5734 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5735 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5736 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2983, %s:%d\n", __FILE__, __LINE__);
5737 tree res_op0;
5738 res_op0 = captures[0];
5739 tree res_op1;
5740 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1));
5741 tree res;
5742 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5743 return res;
5744 }
5745 }
5746 }
5747 else
5748 {
5749/* #line 2984 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5750 if (wi::eq_p (captures[2], min + 1))
5751 {
5752/* #line 2986 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5753 if (cmp == GE_EXPR)
5754 {
5755 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5756 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5757 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2987, %s:%d\n", __FILE__, __LINE__);
5758 tree res_op0;
5759 res_op0 = captures[0];
5760 tree res_op1;
5761 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1));
5762 tree res;
5763 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5764 return res;
5765 }
5766 else
5767 {
5768/* #line 2988 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5769 if (cmp == LT_EXPR)
5770 {
5771 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5772 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
5773 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2989, %s:%d\n", __FILE__, __LINE__);
5774 tree res_op0;
5775 res_op0 = captures[0];
5776 tree res_op1;
5777 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1));
5778 tree res;
5779 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5780 return res;
5781 }
5782 }
5783 }
5784 else
5785 {
5786/* #line 2990 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5787 if (wi::eq_p (captures[2], signed_max) && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type))
5788 {
5789/* #line 3001 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5790 if (cmp == LE_EXPR || cmp == GT_EXPR)
5791 {
5792 {
5793/* #line 3002 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5794 tree st = signed_type_for (arg1_type);
5795/* #line 3003 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5796 if (cmp == LE_EXPR)
5797 {
5798 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3004, %s:%d\n", __FILE__, __LINE__);
5799 tree res_op0;
5800 {
5801 tree ops1[1], res;
5802 ops1[0] = captures[1];
5803 if (TREE_TYPE (ops1[0]) != st)
5804 res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
5805 else
5806 res = ops1[0];
5807 res_op0 = res;
5808 }
5809 tree res_op1;
5810 res_op1 = build_zero_cst (st);
5811 tree res;
5812 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
5813 if (TREE_SIDE_EFFECTS (captures[2]))
5814 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5815 return res;
5816 }
5817 else
5818 {
5819 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3005, %s:%d\n", __FILE__, __LINE__);
5820 tree res_op0;
5821 {
5822 tree ops1[1], res;
5823 ops1[0] = captures[1];
5824 if (TREE_TYPE (ops1[0]) != st)
5825 res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
5826 else
5827 res = ops1[0];
5828 res_op0 = res;
5829 }
5830 tree res_op1;
5831 res_op1 = build_zero_cst (st);
5832 tree res;
5833 res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
5834 if (TREE_SIDE_EFFECTS (captures[2]))
5835 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
5836 return res;
5837 }
5838 }
5839 }
5840 }
5841 }
5842 }
5843 }
5844 }
5845 }
5846 }
5847 return NULL_TREE;
5848}
5849
5850static tree
5851generic_simplify_141 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5852 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5853, enum tree_code ARG_UNUSED (cmp))
5854{
5855 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2356, %s:%d\n", __FILE__, __LINE__);
5856 tree res;
5857 res = constant_boolean_node (true, type);
5858 if (TREE_SIDE_EFFECTS (captures[0]))
5859 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
5860 return res;
5861 return NULL_TREE;
5862}
5863
5864static tree
5865generic_simplify_142 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5866 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5867, enum tree_code ARG_UNUSED (op))
5868{
5869/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5870 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
5871 {
5872/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5873 if (single_use (captures[4]) && single_use (captures[5]))
5874 {
5875 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
5876 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
5877 tree res_op0;
5878 res_op0 = captures[0];
5879 tree res_op1;
5880 {
5881 tree ops1[1], res;
5882 ops1[0] = captures[6];
5883 if (TREE_TYPE (ops1[0]) != type)
5884 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
5885 else
5886 res = ops1[0];
5887 res_op1 = res;
5888 }
5889 tree res;
5890 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
5891 return res;
5892 }
5893 else
5894 {
5895/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5896 if (single_use (captures[0]) && single_use (captures[1]))
5897 {
5898 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
5899 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
5900 tree res_op0;
5901 {
5902 tree ops1[1], res;
5903 ops1[0] = captures[3];
5904 if (TREE_TYPE (ops1[0]) != type)
5905 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
5906 else
5907 res = ops1[0];
5908 res_op0 = res;
5909 }
5910 tree res_op1;
5911 res_op1 = captures[4];
5912 tree res;
5913 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
5914 return res;
5915 }
5916 }
5917 }
5918 return NULL_TREE;
5919}
5920
5921static tree
5922generic_simplify_143 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5923 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5924, enum tree_code ARG_UNUSED (cmp))
5925{
5926/* #line 3057 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5927 if (single_use (captures[0]) && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
5928 {
5929 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3061, %s:%d\n", __FILE__, __LINE__);
5930 tree res_op0;
5931 res_op0 = captures[2];
5932 tree res_op1;
5933 res_op1 = captures[1];
5934 tree res;
5935 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
5936 return res;
5937 }
5938 return NULL_TREE;
5939}
5940
5941static tree
5942generic_simplify_144 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5943 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5944, enum tree_code ARG_UNUSED (div))
5945{
5946/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5947 if (!integer_zerop (captures[1]))
5948 {
5949 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:159, %s:%d\n", __FILE__, __LINE__);
5950 tree res;
5951 res = captures[0];
5952 if (TREE_SIDE_EFFECTS (captures[1]))
5953 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
5954 return res;
5955 }
5956 return NULL_TREE;
5957}
5958
5959static tree
5960generic_simplify_145 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5961 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
5962, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp))
5963{
5964/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5965 if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
5966 {
5967 {
5968/* #line 2662 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5969 tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
5970/* #line 2663 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5971 if (tem && !TREE_OVERFLOW (tem))
5972 {
5973 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
5974 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2664, %s:%d\n", __FILE__, __LINE__);
5975 tree res_op0;
5976 res_op0 = captures[0];
5977 tree res_op1;
5978 res_op1 = tem;
5979 tree res;
5980 res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
5981 return res;
5982 }
5983 }
5984 }
5985 return NULL_TREE;
5986}
5987
5988static tree
5989generic_simplify_146 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
5990 tree ARG_UNUSED (op0), tree *captures
5991, combined_fn ARG_UNUSED (logs), combined_fn ARG_UNUSED (pows))
5992{
5993/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
5994 if (flag_unsafe_math_optimizations)
5995 {
5996 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__);
5997 tree res_op0;
5998 res_op0 = captures[1];
5999 tree res_op1;
6000 {
6001 tree ops1[1], res;
6002 ops1[0] = captures[0];
6003 {
6004 res = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (ops1[0]), 1, ops1[0]);
6005 if (!res)
6006 return NULL_TREE;
6007 }
6008 res_op1 = res;
6009 }
6010 tree res;
6011 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6012 return res;
6013 }
6014 return NULL_TREE;
6015}
6016
6017static tree
6018generic_simplify_147 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6019 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6020)
6021{
6022/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6023 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
6024 {
6025 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:861, %s:%d\n", __FILE__, __LINE__);
6026 tree res_op0;
6027 {
6028 tree ops1[1], res;
6029 ops1[0] = captures[0];
6030 if (TREE_TYPE (ops1[0]) != type)
6031 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
6032 else
6033 res = ops1[0];
6034 res_op0 = res;
6035 }
6036 tree res_op1;
6037 {
6038 tree ops1[1], res;
6039 {
6040 tree ops2[1], res;
6041 ops2[0] = captures[1];
6042 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
6043 ops1[0] = res;
6044 }
6045 if (TREE_TYPE (ops1[0]) != type)
6046 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
6047 else
6048 res = ops1[0];
6049 res_op1 = res;
6050 }
6051 tree res;
6052 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
6053 return res;
6054 }
6055 return NULL_TREE;
6056}
6057
6058static tree
6059generic_simplify_148 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6060 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6061)
6062{
6063/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6064 if (!TYPE_SATURATING (type))
6065 {
6066/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6067 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
6068 {
6069/* #line 1242 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6070 if (!TYPE_OVERFLOW_TRAPS (type))
6071 {
6072 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1243, %s:%d\n", __FILE__, __LINE__);
6073 tree res;
6074 res = build_all_ones_cst (type);
6075 if (TREE_SIDE_EFFECTS (captures[0]))
6076 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6077 return res;
6078 }
6079 }
6080 }
6081 return NULL_TREE;
6082}
6083
6084static tree
6085generic_simplify_149 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6086 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6087)
6088{
6089/* #line 2245 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6090 if (VECTOR_TYPE_P (type) && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3])))))
6091 {
6092 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2249, %s:%d\n", __FILE__, __LINE__);
6093 tree res_op0;
6094 res_op0 = captures[0];
6095 tree res_op1;
6096 {
6097 tree ops1[1], res;
6098 {
6099 tree ops2[3], res;
6100 ops2[0] = captures[2];
6101 {
6102 tree ops3[1], res;
6103 ops3[0] = captures[3];
6104 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
6105 ops2[1] = res;
6106 }
6107 ops2[2] = captures[4];
6108 res = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
6109 ops1[0] = res;
6110 }
6111 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
6112 res_op1 = res;
6113 }
6114 tree res;
6115 res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6116 return res;
6117 }
6118 return NULL_TREE;
6119}
6120
6121static tree
6122generic_simplify_150 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6123 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6124)
6125{
6126/* #line 222 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6127 if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
6128 {
6129 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:225, %s:%d\n", __FILE__, __LINE__);
6130 tree res;
6131 res = build_minus_one_cst (type);
6132 if (TREE_SIDE_EFFECTS (captures[0]))
6133 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6134 return res;
6135 }
6136 return NULL_TREE;
6137}
6138
6139static tree
6140generic_simplify_151 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6141 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6142, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (acmp))
6143{
6144/* #line 2261 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6145 if (tree_int_cst_sgn (captures[1]) == -1)
6146 {
6147 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6148 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2262, %s:%d\n", __FILE__, __LINE__);
6149 tree res_op0;
6150 res_op0 = captures[0];
6151 tree res_op1;
6152 res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]), wi::add (captures[1], 1));
6153 tree res;
6154 res = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
6155 return res;
6156 }
6157 return NULL_TREE;
6158}
6159
6160static tree
6161generic_simplify_152 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6162 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6163)
6164{
6165 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:697, %s:%d\n", __FILE__, __LINE__);
6166 tree res_op0;
6167 res_op0 = captures[0];
6168 tree res_op1;
6169 res_op1 = captures[1];
6170 tree res;
6171 res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6172 return res;
6173 return NULL_TREE;
6174}
6175
6176static tree
6177generic_simplify_153 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6178 tree ARG_UNUSED (op0), tree *captures
6179, combined_fn ARG_UNUSED (floors), combined_fn ARG_UNUSED (truncs))
6180{
6181/* #line 3424 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6182 if (canonicalize_math_p ())
6183 {
6184 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3430, %s:%d\n", __FILE__, __LINE__);
6185 tree res_op0;
6186 res_op0 = captures[0];
6187 tree res;
6188 res = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
6189 if (!res)
6190 return NULL_TREE;
6191 return res;
6192 }
6193 return NULL_TREE;
6194}
6195
6196static tree
6197generic_simplify_154 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6198 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6199)
6200{
6201 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:955, %s:%d\n", __FILE__, __LINE__);
6202 tree res;
6203 res = build_zero_cst (type);
6204 if (TREE_SIDE_EFFECTS (captures[0]))
6205 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6206 return res;
6207 return NULL_TREE;
6208}
6209
6210static tree
6211generic_simplify_155 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6212 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6213, enum tree_code ARG_UNUSED (cmp))
6214{
6215 {
6216/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6217 HOST_WIDE_INT off0, off1;
6218 tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0);
6219 tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1);
6220 if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).to_short_addr ();
6221 base0 = TREE_OPERAND (base0, 0);
6222 } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).to_short_addr ();
6223 base1 = TREE_OPERAND (base1, 0);
6224 }/* #line 2860 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6225 if (base0 && base1)
6226 {
6227 {
6228/* #line 2861 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6229 int equal = 2;
6230 if (1 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ;
6231 else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1));
6232 else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1);
6233/* #line 2883 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6234 if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || off0 == off1 || POINTER_TYPE_OVERFLOW_UNDEFINED || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST))))
6235 {
6236/* #line 2892 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6237 if (cmp == EQ_EXPR)
6238 {
6239 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6240 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6241 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2893, %s:%d\n", __FILE__, __LINE__);
6242 tree res;
6243 res = constant_boolean_node (off0 == off1, type);
6244 return res;
6245 }
6246 else
6247 {
6248/* #line 2894 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6249 if (cmp == NE_EXPR)
6250 {
6251 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6252 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6253 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2895, %s:%d\n", __FILE__, __LINE__);
6254 tree res;
6255 res = constant_boolean_node (off0 != off1, type);
6256 return res;
6257 }
6258 else
6259 {
6260/* #line 2896 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6261 if (cmp == LT_EXPR)
6262 {
6263 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6264 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6265 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2897, %s:%d\n", __FILE__, __LINE__);
6266 tree res;
6267 res = constant_boolean_node (off0 < off1, type);
6268 return res;
6269 }
6270 else
6271 {
6272/* #line 2898 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6273 if (cmp == LE_EXPR)
6274 {
6275 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6276 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6277 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2899, %s:%d\n", __FILE__, __LINE__);
6278 tree res;
6279 res = constant_boolean_node (off0 <= off1, type);
6280 return res;
6281 }
6282 else
6283 {
6284/* #line 2900 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6285 if (cmp == GE_EXPR)
6286 {
6287 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6288 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6289 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2901, %s:%d\n", __FILE__, __LINE__);
6290 tree res;
6291 res = constant_boolean_node (off0 >= off1, type);
6292 return res;
6293 }
6294 else
6295 {
6296/* #line 2902 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6297 if (cmp == GT_EXPR)
6298 {
6299 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6300 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6301 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2903, %s:%d\n", __FILE__, __LINE__);
6302 tree res;
6303 res = constant_boolean_node (off0 > off1, type);
6304 return res;
6305 }
6306 }
6307 }
6308 }
6309 }
6310 }
6311 }
6312 else
6313 {
6314/* #line 2904 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6315 if (equal == 0 && DECL_P (base0) && DECL_P (base1) && (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || off0 == off1))
6316 {
6317/* #line 2910 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6318 if (cmp == EQ_EXPR)
6319 {
6320 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6321 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6322 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2911, %s:%d\n", __FILE__, __LINE__);
6323 tree res;
6324 res = constant_boolean_node (false, type);
6325 return res;
6326 }
6327 else
6328 {
6329/* #line 2912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6330 if (cmp == NE_EXPR)
6331 {
6332 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
6333 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6334 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2913, %s:%d\n", __FILE__, __LINE__);
6335 tree res;
6336 res = constant_boolean_node (true, type);
6337 return res;
6338 }
6339 }
6340 }
6341 }
6342 }
6343 }
6344 }
6345 return NULL_TREE;
6346}
6347
6348static tree
6349generic_simplify_156 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6350 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6351, enum tree_code ARG_UNUSED (cmp))
6352{
6353/* #line 2341 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6354 if (! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
6355 {
6356 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2343, %s:%d\n", __FILE__, __LINE__);
6357 tree res;
6358 res = constant_boolean_node (true, type);
6359 if (TREE_SIDE_EFFECTS (captures[0]))
6360 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6361 return res;
6362 }
6363 else
6364 {
6365/* #line 2344 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6366 if (cmp != EQ_EXPR)
6367 {
6368 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2345, %s:%d\n", __FILE__, __LINE__);
6369 tree res_op0;
6370 res_op0 = unshare_expr (captures[0]);
6371 tree res_op1;
6372 res_op1 = captures[0];
6373 tree res;
6374 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6375 return res;
6376 }
6377 }
6378 return NULL_TREE;
6379}
6380
6381static tree
6382generic_simplify_157 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6383 tree ARG_UNUSED (op0), tree *captures
6384)
6385{
6386/* #line 987 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6387 if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
6388 {
6389 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
6390 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:989, %s:%d\n", __FILE__, __LINE__);
6391 tree res_op0;
6392 {
6393 tree ops1[1], res;
6394 ops1[0] = captures[0];
6395 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
6396 res_op0 = res;
6397 }
6398 tree res;
6399 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
6400 return res;
6401 }
6402 return NULL_TREE;
6403}
6404
6405static tree
6406generic_simplify_158 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6407 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6408, combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (COS))
6409{
6410/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6411 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
6412 {
6413/* #line 3326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6414 if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
6415 {
6416 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3328, %s:%d\n", __FILE__, __LINE__);
6417 tree res_op0;
6418 res_op0 = captures[1];
6419 tree res;
6420 res = maybe_build_call_expr_loc (loc, COS, type, 1, res_op0);
6421 if (!res)
6422 return NULL_TREE;
6423 return res;
6424 }
6425 }
6426 return NULL_TREE;
6427}
6428
6429static tree
6430generic_simplify_159 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6431 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6432)
6433{
6434/* #line 95 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6435 if (fold_real_zero_addition_p (type, captures[1], 0))
6436 {
6437 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:96, %s:%d\n", __FILE__, __LINE__);
6438 tree res_op0;
6439 res_op0 = captures[0];
6440 tree res;
6441 res = non_lvalue_loc (loc, res_op0);
6442 if (TREE_SIDE_EFFECTS (captures[1]))
6443 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6444 return res;
6445 }
6446 return NULL_TREE;
6447}
6448
6449static tree
6450generic_simplify_160 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6451 tree ARG_UNUSED (op0), tree *captures
6452)
6453{
6454/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6455 if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
6456 {
6457 {
6458/* #line 1705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6459 tree shift_type = TREE_TYPE (captures[2]);
6460 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1707, %s:%d\n", __FILE__, __LINE__);
6461 tree res_op0;
6462 {
6463 tree ops1[2], res;
6464 {
6465 tree ops2[1], res;
6466 ops2[0] = captures[3];
6467 if (TREE_TYPE (ops2[0]) != shift_type)
6468 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops2[0]);
6469 else
6470 res = ops2[0];
6471 ops1[0] = res;
6472 }
6473 ops1[1] = captures[4];
6474 res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
6475 res_op0 = res;
6476 }
6477 tree res;
6478 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
6479 return res;
6480 }
6481 }
6482 return NULL_TREE;
6483}
6484
6485static tree
6486generic_simplify_161 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6487 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6488, enum tree_code ARG_UNUSED (op))
6489{
6490/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6491 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
6492 {
6493/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6494 if (single_use (captures[4]) && single_use (captures[5]))
6495 {
6496 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
6497 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
6498 tree res_op0;
6499 res_op0 = captures[0];
6500 tree res_op1;
6501 {
6502 tree ops1[1], res;
6503 ops1[0] = captures[6];
6504 if (TREE_TYPE (ops1[0]) != type)
6505 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
6506 else
6507 res = ops1[0];
6508 res_op1 = res;
6509 }
6510 tree res;
6511 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
6512 return res;
6513 }
6514 else
6515 {
6516/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6517 if (single_use (captures[0]) && single_use (captures[1]))
6518 {
6519 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
6520 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
6521 tree res_op0;
6522 {
6523 tree ops1[1], res;
6524 ops1[0] = captures[3];
6525 if (TREE_TYPE (ops1[0]) != type)
6526 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
6527 else
6528 res = ops1[0];
6529 res_op0 = res;
6530 }
6531 tree res_op1;
6532 res_op1 = captures[4];
6533 tree res;
6534 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
6535 return res;
6536 }
6537 }
6538 }
6539 return NULL_TREE;
6540}
6541
6542static tree
6543generic_simplify_162 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6544 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6545)
6546{
6547 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
6548 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2628, %s:%d\n", __FILE__, __LINE__);
6549 tree res;
6550 res = captures[1];
6551 return res;
6552 return NULL_TREE;
6553}
6554
6555static tree
6556generic_simplify_163 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6557 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6558, enum tree_code ARG_UNUSED (test1), enum tree_code ARG_UNUSED (test2))
6559{
6560/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6561 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
6562 {
6563 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2646, %s:%d\n", __FILE__, __LINE__);
6564 tree res;
6565 res = constant_boolean_node (false, type);
6566 if (TREE_SIDE_EFFECTS (captures[0]))
6567 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6568 if (TREE_SIDE_EFFECTS (captures[1]))
6569 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6570 return res;
6571 }
6572 return NULL_TREE;
6573}
6574
6575static tree
6576generic_simplify_164 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6577 tree ARG_UNUSED (op0), tree *captures
6578, combined_fn ARG_UNUSED (bswap))
6579{
6580 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1975, %s:%d\n", __FILE__, __LINE__);
6581 tree res;
6582 res = captures[0];
6583 return res;
6584 return NULL_TREE;
6585}
6586
6587static tree
6588generic_simplify_165 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6589 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6590, enum tree_code ARG_UNUSED (outer_op))
6591{
6592/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6593 if (!TYPE_SATURATING (type))
6594 {
6595/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6596 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
6597 {
6598 {
6599/* #line 1228 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6600 tree cst = const_binop (outer_op, type, captures[0], captures[2]);
6601/* #line 1229 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6602 if (cst && !TREE_OVERFLOW (cst))
6603 {
6604 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
6605 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6606 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1230, %s:%d\n", __FILE__, __LINE__);
6607 tree res_op0;
6608 res_op0 = cst;
6609 tree res_op1;
6610 res_op1 = captures[1];
6611 tree res;
6612 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
6613 return res;
6614 }
6615 }
6616 }
6617 }
6618 return NULL_TREE;
6619}
6620
6621static tree
6622generic_simplify_166 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6623 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6624, enum tree_code ARG_UNUSED (div))
6625{
6626/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6627 if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
6628 {
6629 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:177, %s:%d\n", __FILE__, __LINE__);
6630 tree res_op0;
6631 {
6632 tree ops1[2], res;
6633 ops1[0] = captures[0];
6634 ops1[1] = build_zero_cst (type);
6635 res = fold_build2_loc (loc, LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
6636 res_op0 = res;
6637 }
6638 tree res_op1;
6639 res_op1 = build_minus_one_cst (type);
6640 tree res_op2;
6641 res_op2 = build_one_cst (type);
6642 tree res;
6643 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6644 return res;
6645 }
6646 return NULL_TREE;
6647}
6648
6649static tree
6650generic_simplify_167 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6651 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6652, enum tree_code ARG_UNUSED (cmp))
6653{
6654/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6655 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && TREE_CODE (TREE_TYPE (captures[1])) == POINTER_TYPE && TREE_CODE (TREE_TYPE (TREE_TYPE (captures[1]))) == FUNCTION_TYPE) && single_use (captures[0]))
6656 {
6657/* #line 2683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6658 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || (captures[2] != captures[3] && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0])) || cmp == NE_EXPR || cmp == EQ_EXPR) && (POINTER_TYPE_P (TREE_TYPE (captures[1])) == POINTER_TYPE_P (TREE_TYPE (captures[0]))))
6659 {
6660/* #line 2693 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6661 if (TREE_CODE (captures[2]) == INTEGER_CST)
6662 {
6663 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6664 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2694, %s:%d\n", __FILE__, __LINE__);
6665 tree res_op0;
6666 res_op0 = captures[1];
6667 tree res_op1;
6668 res_op1 = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
6669 tree res;
6670 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
6671 return res;
6672 }
6673 else
6674 {
6675 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2696, %s:%d\n", __FILE__, __LINE__);
6676 tree res_op0;
6677 res_op0 = captures[1];
6678 tree res_op1;
6679 {
6680 tree ops1[1], res;
6681 ops1[0] = captures[2];
6682 if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
6683 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
6684 else
6685 res = ops1[0];
6686 res_op1 = res;
6687 }
6688 tree res;
6689 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
6690 return res;
6691 }
6692 }
6693 else
6694 {
6695/* #line 2698 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6696 if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
6697 {
6698/* #line 2700 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6699 if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1])))))
6700 {
6701 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2712, %s:%d\n", __FILE__, __LINE__);
6702 tree res_op0;
6703 res_op0 = captures[1];
6704 tree res_op1;
6705 {
6706 tree ops1[1], res;
6707 ops1[0] = captures[3];
6708 if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
6709 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
6710 else
6711 res = ops1[0];
6712 res_op1 = res;
6713 }
6714 tree res;
6715 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
6716 return res;
6717 }
6718 else
6719 {
6720/* #line 2713 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6721 if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1])))
6722 {
6723 {
6724/* #line 2716 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6725 tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
6726 tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
6727 bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3]));
6728 bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min));
6729/* #line 2723 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6730 if (above || below)
6731 {
6732/* #line 2724 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6733 if (cmp == EQ_EXPR || cmp == NE_EXPR)
6734 {
6735 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2725, %s:%d\n", __FILE__, __LINE__);
6736 tree res;
6737 res = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
6738 if (TREE_SIDE_EFFECTS (captures[1]))
6739 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6740 if (TREE_SIDE_EFFECTS (captures[2]))
6741 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6742 return res;
6743 }
6744 else
6745 {
6746/* #line 2726 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6747 if (cmp == LT_EXPR || cmp == LE_EXPR)
6748 {
6749 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2727, %s:%d\n", __FILE__, __LINE__);
6750 tree res;
6751 res = constant_boolean_node (above ? true : false, type);
6752 if (TREE_SIDE_EFFECTS (captures[1]))
6753 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6754 if (TREE_SIDE_EFFECTS (captures[2]))
6755 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6756 return res;
6757 }
6758 else
6759 {
6760/* #line 2728 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6761 if (cmp == GT_EXPR || cmp == GE_EXPR)
6762 {
6763 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2729, %s:%d\n", __FILE__, __LINE__);
6764 tree res;
6765 res = constant_boolean_node (above ? false : true, type);
6766 if (TREE_SIDE_EFFECTS (captures[1]))
6767 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6768 if (TREE_SIDE_EFFECTS (captures[2]))
6769 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6770 return res;
6771 }
6772 }
6773 }
6774 }
6775 }
6776 }
6777 }
6778 }
6779 }
6780 }
6781 return NULL_TREE;
6782}
6783
6784static tree
6785generic_simplify_168 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6786 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6787, enum tree_code ARG_UNUSED (cmp))
6788{
6789/* #line 1475 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6790 if (wi::gt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0]))))
6791 {
6792 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1476, %s:%d\n", __FILE__, __LINE__);
6793 tree res;
6794 res = constant_boolean_node (cmp == NE_EXPR, type);
6795 if (TREE_SIDE_EFFECTS (captures[0]))
6796 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6797 if (TREE_SIDE_EFFECTS (captures[1]))
6798 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6799 if (TREE_SIDE_EFFECTS (captures[2]))
6800 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6801 return res;
6802 }
6803 else
6804 {
6805/* #line 1477 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6806 if (wi::lt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0]))))
6807 {
6808 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1478, %s:%d\n", __FILE__, __LINE__);
6809 tree res_op0;
6810 res_op0 = captures[0];
6811 tree res_op1;
6812 res_op1 = captures[2];
6813 tree res;
6814 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
6815 if (TREE_SIDE_EFFECTS (captures[1]))
6816 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
6817 return res;
6818 }
6819 }
6820 return NULL_TREE;
6821}
6822
6823static tree
6824generic_simplify_169 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
6825 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
6826, enum tree_code ARG_UNUSED (cmp))
6827{
6828/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6829 if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
6830 {
6831 {
6832/* #line 2949 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6833 tree arg1_type = TREE_TYPE (captures[2]);
6834 unsigned int prec = TYPE_PRECISION (arg1_type);
6835 wide_int max = wi::max_value (arg1_type);
6836 wide_int signed_max = wi::max_value (prec, SIGNED);
6837 wide_int min = wi::min_value (arg1_type);
6838/* #line 2958 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6839 if (wi::eq_p (captures[2], max))
6840 {
6841/* #line 2960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6842 if (cmp == GT_EXPR)
6843 {
6844 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2961, %s:%d\n", __FILE__, __LINE__);
6845 tree res;
6846 res = constant_boolean_node (false, type);
6847 if (TREE_SIDE_EFFECTS (captures[0]))
6848 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6849 if (TREE_SIDE_EFFECTS (captures[2]))
6850 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6851 return res;
6852 }
6853 else
6854 {
6855/* #line 2962 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6856 if (cmp == GE_EXPR)
6857 {
6858 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2963, %s:%d\n", __FILE__, __LINE__);
6859 tree res_op0;
6860 res_op0 = captures[0];
6861 tree res_op1;
6862 res_op1 = captures[2];
6863 tree res;
6864 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6865 return res;
6866 }
6867 else
6868 {
6869/* #line 2964 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6870 if (cmp == LE_EXPR)
6871 {
6872 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2965, %s:%d\n", __FILE__, __LINE__);
6873 tree res;
6874 res = constant_boolean_node (true, type);
6875 if (TREE_SIDE_EFFECTS (captures[0]))
6876 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6877 if (TREE_SIDE_EFFECTS (captures[2]))
6878 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6879 return res;
6880 }
6881 else
6882 {
6883/* #line 2966 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6884 if (cmp == LT_EXPR)
6885 {
6886 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2967, %s:%d\n", __FILE__, __LINE__);
6887 tree res_op0;
6888 res_op0 = captures[0];
6889 tree res_op1;
6890 res_op1 = captures[2];
6891 tree res;
6892 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
6893 return res;
6894 }
6895 }
6896 }
6897 }
6898 }
6899 else
6900 {
6901/* #line 2968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6902 if (wi::eq_p (captures[2], min))
6903 {
6904/* #line 2970 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6905 if (cmp == LT_EXPR)
6906 {
6907 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2971, %s:%d\n", __FILE__, __LINE__);
6908 tree res;
6909 res = constant_boolean_node (false, type);
6910 if (TREE_SIDE_EFFECTS (captures[0]))
6911 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6912 if (TREE_SIDE_EFFECTS (captures[2]))
6913 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6914 return res;
6915 }
6916 else
6917 {
6918/* #line 2972 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6919 if (cmp == LE_EXPR)
6920 {
6921 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2973, %s:%d\n", __FILE__, __LINE__);
6922 tree res_op0;
6923 res_op0 = captures[0];
6924 tree res_op1;
6925 res_op1 = captures[2];
6926 tree res;
6927 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6928 return res;
6929 }
6930 else
6931 {
6932/* #line 2974 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6933 if (cmp == GE_EXPR)
6934 {
6935 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2975, %s:%d\n", __FILE__, __LINE__);
6936 tree res;
6937 res = constant_boolean_node (true, type);
6938 if (TREE_SIDE_EFFECTS (captures[0]))
6939 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
6940 if (TREE_SIDE_EFFECTS (captures[2]))
6941 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
6942 return res;
6943 }
6944 else
6945 {
6946/* #line 2976 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6947 if (cmp == GT_EXPR)
6948 {
6949 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2977, %s:%d\n", __FILE__, __LINE__);
6950 tree res_op0;
6951 res_op0 = captures[0];
6952 tree res_op1;
6953 res_op1 = captures[2];
6954 tree res;
6955 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
6956 return res;
6957 }
6958 }
6959 }
6960 }
6961 }
6962 else
6963 {
6964/* #line 2978 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6965 if (wi::eq_p (captures[2], max - 1))
6966 {
6967/* #line 2980 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6968 if (cmp == GT_EXPR)
6969 {
6970 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6971 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2981, %s:%d\n", __FILE__, __LINE__);
6972 tree res_op0;
6973 res_op0 = captures[0];
6974 tree res_op1;
6975 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1));
6976 tree res;
6977 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6978 return res;
6979 }
6980 else
6981 {
6982/* #line 2982 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
6983 if (cmp == LE_EXPR)
6984 {
6985 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
6986 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2983, %s:%d\n", __FILE__, __LINE__);
6987 tree res_op0;
6988 res_op0 = captures[0];
6989 tree res_op1;
6990 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1));
6991 tree res;
6992 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
6993 return res;
6994 }
6995 }
6996 }
6997 else
6998 {
6999/* #line 2984 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7000 if (wi::eq_p (captures[2], min + 1))
7001 {
7002/* #line 2986 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7003 if (cmp == GE_EXPR)
7004 {
7005 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
7006 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2987, %s:%d\n", __FILE__, __LINE__);
7007 tree res_op0;
7008 res_op0 = captures[0];
7009 tree res_op1;
7010 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1));
7011 tree res;
7012 res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
7013 return res;
7014 }
7015 else
7016 {
7017/* #line 2988 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7018 if (cmp == LT_EXPR)
7019 {
7020 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
7021 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2989, %s:%d\n", __FILE__, __LINE__);
7022 tree res_op0;
7023 res_op0 = captures[0];
7024 tree res_op1;
7025 res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1));
7026 tree res;
7027 res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
7028 return res;
7029 }
7030 }
7031 }
7032 else
7033 {
7034/* #line 2990 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7035 if (wi::eq_p (captures[2], signed_max) && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type))
7036 {
7037/* #line 3001 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7038 if (cmp == LE_EXPR || cmp == GT_EXPR)
7039 {
7040 {
7041/* #line 3002 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7042 tree st = signed_type_for (arg1_type);
7043/* #line 3003 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7044 if (cmp == LE_EXPR)
7045 {
7046 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3004, %s:%d\n", __FILE__, __LINE__);
7047 tree res_op0;
7048 {
7049 tree ops1[1], res;
7050 ops1[0] = captures[1];
7051 if (TREE_TYPE (ops1[0]) != st)
7052 res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
7053 else
7054 res = ops1[0];
7055 res_op0 = res;
7056 }
7057 tree res_op1;
7058 res_op1 = build_zero_cst (st);
7059 tree res;
7060 res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
7061 if (TREE_SIDE_EFFECTS (captures[2]))
7062 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
7063 return res;
7064 }
7065 else
7066 {
7067 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3005, %s:%d\n", __FILE__, __LINE__);
7068 tree res_op0;
7069 {
7070 tree ops1[1], res;
7071 ops1[0] = captures[1];
7072 if (TREE_TYPE (ops1[0]) != st)
7073 res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
7074 else
7075 res = ops1[0];
7076 res_op0 = res;
7077 }
7078 tree res_op1;
7079 res_op1 = build_zero_cst (st);
7080 tree res;
7081 res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
7082 if (TREE_SIDE_EFFECTS (captures[2]))
7083 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
7084 return res;
7085 }
7086 }
7087 }
7088 }
7089 }
7090 }
7091 }
7092 }
7093 }
7094 }
7095 return NULL_TREE;
7096}
7097
7098static tree
7099generic_simplify_170 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7100 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7101, combined_fn ARG_UNUSED (POW))
7102{
7103/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7104 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
7105 {
7106 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3345, %s:%d\n", __FILE__, __LINE__);
7107 tree res_op0;
7108 {
7109 tree ops1[2], res;
7110 ops1[0] = captures[1];
7111 ops1[1] = captures[4];
7112 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
7113 res_op0 = res;
7114 }
7115 tree res_op1;
7116 res_op1 = captures[2];
7117 tree res;
7118 res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
7119 if (!res)
7120 return NULL_TREE;
7121 return res;
7122 }
7123 return NULL_TREE;
7124}
7125
7126static tree
7127generic_simplify_171 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7128 tree ARG_UNUSED (op0), tree *captures
7129, enum tree_code ARG_UNUSED (rotate))
7130{
7131/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7132 if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
7133 {
7134 {
7135/* #line 1719 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7136 tree rotate_type = TREE_TYPE (captures[2]);
7137 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1721, %s:%d\n", __FILE__, __LINE__);
7138 tree res_op0;
7139 {
7140 tree ops1[2], res;
7141 {
7142 tree ops2[1], res;
7143 ops2[0] = captures[3];
7144 if (TREE_TYPE (ops2[0]) != rotate_type)
7145 res = fold_build1_loc (loc, NOP_EXPR, rotate_type, ops2[0]);
7146 else
7147 res = ops2[0];
7148 ops1[0] = res;
7149 }
7150 ops1[1] = captures[4];
7151 res = fold_build2_loc (loc, rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
7152 res_op0 = res;
7153 }
7154 tree res;
7155 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
7156 return res;
7157 }
7158 }
7159 return NULL_TREE;
7160}
7161
7162static tree
7163generic_simplify_172 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7164 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7165, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp))
7166{
7167/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7168 if (integer_zerop (captures[2]))
7169 {
7170 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2327, %s:%d\n", __FILE__, __LINE__);
7171 tree res_op0;
7172 res_op0 = captures[2];
7173 tree res_op1;
7174 res_op1 = captures[3];
7175 tree res;
7176 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
7177 if (TREE_SIDE_EFFECTS (captures[1]))
7178 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7179 return res;
7180 }
7181 else
7182 {
7183/* #line 2328 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7184 if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && single_use (captures[0]))
7185 {
7186/* #line 2332 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7187 if (tree_int_cst_sgn (captures[2]) < 0)
7188 {
7189 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2333, %s:%d\n", __FILE__, __LINE__);
7190 tree res_op0;
7191 res_op0 = captures[1];
7192 tree res_op1;
7193 res_op1 = captures[3];
7194 tree res;
7195 res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
7196 if (TREE_SIDE_EFFECTS (captures[2]))
7197 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
7198 return res;
7199 }
7200 else
7201 {
7202 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2334, %s:%d\n", __FILE__, __LINE__);
7203 tree res_op0;
7204 res_op0 = captures[1];
7205 tree res_op1;
7206 res_op1 = captures[3];
7207 tree res;
7208 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
7209 if (TREE_SIDE_EFFECTS (captures[2]))
7210 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
7211 return res;
7212 }
7213 }
7214 }
7215 return NULL_TREE;
7216}
7217
7218static tree
7219generic_simplify_173 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7220 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7221, enum tree_code ARG_UNUSED (cmp))
7222{
7223/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7224 if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && (cmp != LTGT_EXPR || ! flag_trapping_math))
7225 {
7226 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3013, %s:%d\n", __FILE__, __LINE__);
7227 tree res;
7228 res = constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR ? false : true, type);
7229 if (TREE_SIDE_EFFECTS (captures[0]))
7230 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
7231 if (TREE_SIDE_EFFECTS (captures[1]))
7232 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7233 return res;
7234 }
7235 return NULL_TREE;
7236}
7237
7238static tree
7239generic_simplify_174 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7240 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7241)
7242{
7243/* #line 765 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7244 if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
7245 {
7246 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:767, %s:%d\n", __FILE__, __LINE__);
7247 tree res_op0;
7248 {
7249 tree ops1[1], res;
7250 ops1[0] = captures[0];
7251 if (TREE_TYPE (ops1[0]) != type)
7252 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7253 else
7254 res = ops1[0];
7255 res_op0 = res;
7256 }
7257 tree res_op1;
7258 {
7259 tree ops1[1], res;
7260 ops1[0] = captures[1];
7261 if (TREE_TYPE (ops1[0]) != type)
7262 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7263 else
7264 res = ops1[0];
7265 res_op1 = res;
7266 }
7267 tree res;
7268 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
7269 return res;
7270 }
7271 return NULL_TREE;
7272}
7273
7274static tree
7275generic_simplify_175 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7276 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7277, combined_fn ARG_UNUSED (POW))
7278{
7279 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3266, %s:%d\n", __FILE__, __LINE__);
7280 tree res;
7281 res = captures[0];
7282 if (TREE_SIDE_EFFECTS (captures[1]))
7283 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7284 return res;
7285 return NULL_TREE;
7286}
7287
7288static tree
7289generic_simplify_176 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7290 tree ARG_UNUSED (op0), tree *captures
7291, combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos))
7292{
7293/* #line 3489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7294 if (optimize && canonicalize_math_p ())
7295 {
7296 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3492, %s:%d\n", __FILE__, __LINE__);
7297 tree res_op0;
7298 res_op0 = captures[0];
7299 tree res;
7300 res = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
7301 if (!res)
7302 return NULL_TREE;
7303 return res;
7304 }
7305 return NULL_TREE;
7306}
7307
7308static tree
7309generic_simplify_177 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7310 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7311)
7312{
7313 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3282, %s:%d\n", __FILE__, __LINE__);
7314 tree res;
7315 res = captures[0];
7316 if (TREE_SIDE_EFFECTS (captures[1]))
7317 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7318 return res;
7319 return NULL_TREE;
7320}
7321
7322static tree
7323generic_simplify_178 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7324 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7325)
7326{
7327/* #line 574 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7328 if (wi::bit_not (captures[1]) == captures[2])
7329 {
7330 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:575, %s:%d\n", __FILE__, __LINE__);
7331 tree res_op0;
7332 res_op0 = captures[0];
7333 tree res_op1;
7334 res_op1 = captures[2];
7335 tree res;
7336 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
7337 if (TREE_SIDE_EFFECTS (captures[1]))
7338 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7339 return res;
7340 }
7341 return NULL_TREE;
7342}
7343
7344static tree
7345generic_simplify_179 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7346 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7347, combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (TAN))
7348{
7349/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7350 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
7351 {
7352 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3316, %s:%d\n", __FILE__, __LINE__);
7353 tree res_op0;
7354 res_op0 = captures[1];
7355 tree res;
7356 res = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
7357 if (!res)
7358 return NULL_TREE;
7359 return res;
7360 }
7361 return NULL_TREE;
7362}
7363
7364static tree
7365generic_simplify_180 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7366 tree ARG_UNUSED (op0), tree *captures
7367, enum tree_code ARG_UNUSED (op))
7368{
7369/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7370 if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (type)) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST))
7371 {
7372/* #line 3637 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7373 if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
7374 {
7375 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3638, %s:%d\n", __FILE__, __LINE__);
7376 tree res_op0;
7377 res_op0 = captures[2];
7378 tree res_op1;
7379 {
7380 tree ops1[1], res;
7381 ops1[0] = captures[4];
7382 if (TREE_TYPE (ops1[0]) != type)
7383 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7384 else
7385 res = ops1[0];
7386 res_op1 = res;
7387 }
7388 tree res;
7389 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7390 return res;
7391 }
7392 else
7393 {
7394 {
7395/* #line 3639 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7396 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
7397 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3640, %s:%d\n", __FILE__, __LINE__);
7398 tree res_op0;
7399 {
7400 tree ops1[2], res;
7401 {
7402 tree ops2[1], res;
7403 ops2[0] = captures[2];
7404 if (TREE_TYPE (ops2[0]) != utype)
7405 res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
7406 else
7407 res = ops2[0];
7408 ops1[0] = res;
7409 }
7410 {
7411 tree ops2[1], res;
7412 ops2[0] = captures[4];
7413 if (TREE_TYPE (ops2[0]) != utype)
7414 res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
7415 else
7416 res = ops2[0];
7417 ops1[1] = res;
7418 }
7419 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
7420 res_op0 = res;
7421 }
7422 tree res;
7423 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
7424 return res;
7425 }
7426 }
7427 }
7428 return NULL_TREE;
7429}
7430
7431static tree
7432generic_simplify_181 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7433 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7434, enum tree_code ARG_UNUSED (cmp))
7435{
7436/* #line 2932 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7437 if (((POINTER_TYPE_P (TREE_TYPE (captures[0])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0]))) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && POINTER_TYPE_P (TREE_TYPE (captures[1])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1])))
7438 {
7439 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2939, %s:%d\n", __FILE__, __LINE__);
7440 tree res_op0;
7441 res_op0 = captures[0];
7442 tree res_op1;
7443 {
7444 tree ops1[1], res;
7445 ops1[0] = captures[1];
7446 if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
7447 res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
7448 else
7449 res = ops1[0];
7450 res_op1 = res;
7451 }
7452 tree res;
7453 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
7454 return res;
7455 }
7456 return NULL_TREE;
7457}
7458
7459static tree
7460generic_simplify_182 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7461 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7462)
7463{
7464/* #line 1355 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7465 if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
7466 {
7467 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1358, %s:%d\n", __FILE__, __LINE__);
7468 tree res_op0;
7469 res_op0 = captures[0];
7470 tree res;
7471 res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
7472 return res;
7473 }
7474 return NULL_TREE;
7475}
7476
7477static tree
7478generic_simplify_183 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7479 tree ARG_UNUSED (op0), tree *captures
7480, enum tree_code ARG_UNUSED (op))
7481{
7482/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7483 if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (type)) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST))
7484 {
7485/* #line 3637 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7486 if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
7487 {
7488 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3638, %s:%d\n", __FILE__, __LINE__);
7489 tree res_op0;
7490 res_op0 = captures[2];
7491 tree res_op1;
7492 {
7493 tree ops1[1], res;
7494 ops1[0] = captures[4];
7495 if (TREE_TYPE (ops1[0]) != type)
7496 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7497 else
7498 res = ops1[0];
7499 res_op1 = res;
7500 }
7501 tree res;
7502 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7503 return res;
7504 }
7505 else
7506 {
7507 {
7508/* #line 3639 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7509 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
7510 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3640, %s:%d\n", __FILE__, __LINE__);
7511 tree res_op0;
7512 {
7513 tree ops1[2], res;
7514 {
7515 tree ops2[1], res;
7516 ops2[0] = captures[2];
7517 if (TREE_TYPE (ops2[0]) != utype)
7518 res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
7519 else
7520 res = ops2[0];
7521 ops1[0] = res;
7522 }
7523 {
7524 tree ops2[1], res;
7525 ops2[0] = captures[4];
7526 if (TREE_TYPE (ops2[0]) != utype)
7527 res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
7528 else
7529 res = ops2[0];
7530 ops1[1] = res;
7531 }
7532 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
7533 res_op0 = res;
7534 }
7535 tree res;
7536 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
7537 return res;
7538 }
7539 }
7540 }
7541 return NULL_TREE;
7542}
7543
7544static tree
7545generic_simplify_184 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7546 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7547, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
7548{
7549/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7550 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])) && wi::ne_p (captures[2], 0) && single_use (captures[0]))
7551 {
7552 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
7553 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3048, %s:%d\n", __FILE__, __LINE__);
7554 tree res_op0;
7555 res_op0 = captures[1];
7556 tree res_op1;
7557 res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]), wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[1])), UNSIGNED) - captures[2]);
7558 tree res;
7559 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
7560 return res;
7561 }
7562 return NULL_TREE;
7563}
7564
7565static tree
7566generic_simplify_185 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7567 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7568, enum tree_code ARG_UNUSED (mod))
7569{
7570 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
7571 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:320, %s:%d\n", __FILE__, __LINE__);
7572 tree res;
7573 res = captures[0];
7574 return res;
7575 return NULL_TREE;
7576}
7577
7578static tree
7579generic_simplify_186 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7580 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7581, enum tree_code ARG_UNUSED (op))
7582{
7583/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7584 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
7585 {
7586/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7587 if (single_use (captures[4]) && single_use (captures[5]))
7588 {
7589 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
7590 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
7591 tree res_op0;
7592 res_op0 = captures[0];
7593 tree res_op1;
7594 {
7595 tree ops1[1], res;
7596 ops1[0] = captures[6];
7597 if (TREE_TYPE (ops1[0]) != type)
7598 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7599 else
7600 res = ops1[0];
7601 res_op1 = res;
7602 }
7603 tree res;
7604 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7605 return res;
7606 }
7607 else
7608 {
7609/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7610 if (single_use (captures[0]) && single_use (captures[1]))
7611 {
7612 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7613 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
7614 tree res_op0;
7615 {
7616 tree ops1[1], res;
7617 ops1[0] = captures[3];
7618 if (TREE_TYPE (ops1[0]) != type)
7619 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7620 else
7621 res = ops1[0];
7622 res_op0 = res;
7623 }
7624 tree res_op1;
7625 res_op1 = captures[4];
7626 tree res;
7627 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7628 return res;
7629 }
7630 }
7631 }
7632 return NULL_TREE;
7633}
7634
7635static tree
7636generic_simplify_187 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7637 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7638, enum tree_code ARG_UNUSED (op))
7639{
7640 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7641 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:148, %s:%d\n", __FILE__, __LINE__);
7642 tree res_op0;
7643 res_op0 = captures[0];
7644 tree res;
7645 res = non_lvalue_loc (loc, res_op0);
7646 return res;
7647 return NULL_TREE;
7648}
7649
7650static tree
7651generic_simplify_188 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7652 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7653, enum tree_code ARG_UNUSED (op))
7654{
7655/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7656 if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[4])) && wi::bit_and (captures[2], captures[5]) == 0)
7657 {
7658 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
7659 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7660 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:754, %s:%d\n", __FILE__, __LINE__);
7661 tree res_op0;
7662 {
7663 tree ops1[1], res;
7664 ops1[0] = captures[0];
7665 if (TREE_TYPE (ops1[0]) != type)
7666 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7667 else
7668 res = ops1[0];
7669 res_op0 = res;
7670 }
7671 tree res_op1;
7672 {
7673 tree ops1[1], res;
7674 ops1[0] = captures[3];
7675 if (TREE_TYPE (ops1[0]) != type)
7676 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7677 else
7678 res = ops1[0];
7679 res_op1 = res;
7680 }
7681 tree res;
7682 res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
7683 return res;
7684 }
7685 return NULL_TREE;
7686}
7687
7688static tree
7689generic_simplify_189 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7690 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7691, enum tree_code ARG_UNUSED (mod))
7692{
7693 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7694 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:305, %s:%d\n", __FILE__, __LINE__);
7695 tree res;
7696 res = build_zero_cst (type);
7697 if (TREE_SIDE_EFFECTS (captures[0]))
7698 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
7699 return res;
7700 return NULL_TREE;
7701}
7702
7703static tree
7704generic_simplify_190 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7705 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7706, enum tree_code ARG_UNUSED (cmp))
7707{
7708/* #line 1468 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7709 if (wi::lt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0]))))
7710 {
7711 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1469, %s:%d\n", __FILE__, __LINE__);
7712 tree res;
7713 res = constant_boolean_node (cmp == NE_EXPR, type);
7714 if (TREE_SIDE_EFFECTS (captures[0]))
7715 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
7716 if (TREE_SIDE_EFFECTS (captures[1]))
7717 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7718 if (TREE_SIDE_EFFECTS (captures[2]))
7719 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
7720 return res;
7721 }
7722 else
7723 {
7724/* #line 1470 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7725 if (wi::gt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0]))))
7726 {
7727 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1471, %s:%d\n", __FILE__, __LINE__);
7728 tree res_op0;
7729 res_op0 = captures[0];
7730 tree res_op1;
7731 res_op1 = captures[2];
7732 tree res;
7733 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
7734 if (TREE_SIDE_EFFECTS (captures[1]))
7735 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
7736 return res;
7737 }
7738 }
7739 return NULL_TREE;
7740}
7741
7742static tree
7743generic_simplify_191 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7744 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7745, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
7746{
7747/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7748 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
7749 {
7750 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7751 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3079, %s:%d\n", __FILE__, __LINE__);
7752 tree res_op0;
7753 {
7754 tree ops1[1], res;
7755 ops1[0] = captures[0];
7756 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
7757 res_op0 = res;
7758 }
7759 tree res_op1;
7760 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
7761 tree res;
7762 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
7763 return res;
7764 }
7765 return NULL_TREE;
7766}
7767
7768static tree
7769generic_simplify_192 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7770 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7771, enum tree_code ARG_UNUSED (inner_op), enum tree_code ARG_UNUSED (outer_op))
7772{
7773 {
7774/* #line 1054 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7775 bool fail = false;
7776 wide_int zero_mask_not;
7777 wide_int C0;
7778 wide_int cst_emit;
7779 if (TREE_CODE (captures[1]) == SSA_NAME) zero_mask_not = get_nonzero_bits (captures[1]);
7780 else fail = true;
7781 if (inner_op == BIT_XOR_EXPR) { C0 = wi::bit_and_not (captures[2], captures[3]);
7782 cst_emit = wi::bit_or (C0, captures[3]);
7783 } else { C0 = captures[2];
7784 cst_emit = wi::bit_xor (captures[2], captures[3]);
7785 }/* #line 1077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7786 if (!fail && wi::bit_and (C0, zero_mask_not) == 0)
7787 {
7788 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
7789 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
7790 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
7791 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1078, %s:%d\n", __FILE__, __LINE__);
7792 tree res_op0;
7793 res_op0 = captures[1];
7794 tree res_op1;
7795 res_op1 = wide_int_to_tree (type, cst_emit);
7796 tree res;
7797 res = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
7798 return res;
7799 }
7800 else
7801 {
7802/* #line 1079 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7803 if (!fail && wi::bit_and (captures[3], zero_mask_not) == 0)
7804 {
7805 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
7806 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
7807 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
7808 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1080, %s:%d\n", __FILE__, __LINE__);
7809 tree res_op0;
7810 res_op0 = captures[1];
7811 tree res_op1;
7812 res_op1 = wide_int_to_tree (type, cst_emit);
7813 tree res;
7814 res = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
7815 return res;
7816 }
7817 }
7818 }
7819 return NULL_TREE;
7820}
7821
7822static tree
7823generic_simplify_193 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7824 tree ARG_UNUSED (op0), tree *captures
7825)
7826{
7827/* #line 1962 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7828 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type))
7829 {
7830 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1963, %s:%d\n", __FILE__, __LINE__);
7831 tree res_op0;
7832 res_op0 = captures[0];
7833 tree res;
7834 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
7835 return res;
7836 }
7837 return NULL_TREE;
7838}
7839
7840static tree
7841generic_simplify_194 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7842 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7843, enum tree_code ARG_UNUSED (op))
7844{
7845/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7846 if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
7847 {
7848/* #line 814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7849 if (single_use (captures[4]) && single_use (captures[5]))
7850 {
7851 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
7852 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__);
7853 tree res_op0;
7854 res_op0 = captures[0];
7855 tree res_op1;
7856 {
7857 tree ops1[1], res;
7858 ops1[0] = captures[6];
7859 if (TREE_TYPE (ops1[0]) != type)
7860 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7861 else
7862 res = ops1[0];
7863 res_op1 = res;
7864 }
7865 tree res;
7866 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7867 return res;
7868 }
7869 else
7870 {
7871/* #line 816 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7872 if (single_use (captures[0]) && single_use (captures[1]))
7873 {
7874 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
7875 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__);
7876 tree res_op0;
7877 {
7878 tree ops1[1], res;
7879 ops1[0] = captures[3];
7880 if (TREE_TYPE (ops1[0]) != type)
7881 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
7882 else
7883 res = ops1[0];
7884 res_op0 = res;
7885 }
7886 tree res_op1;
7887 res_op1 = captures[4];
7888 tree res;
7889 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
7890 return res;
7891 }
7892 }
7893 }
7894 return NULL_TREE;
7895}
7896
7897static tree
7898generic_simplify_195 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7899 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7900, enum tree_code ARG_UNUSED (shiftrotate))
7901{
7902 {
7903/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7904 tree tem = uniform_vector_p (captures[1]);
7905/* #line 1528 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7906 if (tem)
7907 {
7908 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
7909 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1529, %s:%d\n", __FILE__, __LINE__);
7910 tree res_op0;
7911 res_op0 = captures[0];
7912 tree res_op1;
7913 res_op1 = tem;
7914 tree res;
7915 res = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
7916 return res;
7917 }
7918 }
7919 return NULL_TREE;
7920}
7921
7922static tree
7923generic_simplify_196 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7924 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7925)
7926{
7927/* #line 1134 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7928 if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
7929 {
7930 {
7931/* #line 1136 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7932 unsigned int align;
7933 unsigned HOST_WIDE_INT bitpos;
7934 get_pointer_alignment_1 (captures[0], &align, &bitpos);
7935/* #line 1142 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7936 if (wi::ltu_p (captures[1], align / BITS_PER_UNIT))
7937 {
7938 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
7939 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
7940 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1143, %s:%d\n", __FILE__, __LINE__);
7941 tree res;
7942 res = wide_int_to_tree (type, wi::bit_and (captures[1], bitpos / BITS_PER_UNIT));
7943 return res;
7944 }
7945 }
7946 }
7947 return NULL_TREE;
7948}
7949
7950static tree
7951generic_simplify_197 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7952 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7953, enum tree_code ARG_UNUSED (cmp))
7954{
7955 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2360, %s:%d\n", __FILE__, __LINE__);
7956 tree res_op0;
7957 res_op0 = unshare_expr (captures[0]);
7958 tree res_op1;
7959 res_op1 = captures[0];
7960 tree res;
7961 res = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
7962 return res;
7963 return NULL_TREE;
7964}
7965
7966static tree
7967generic_simplify_198 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
7968 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
7969, enum tree_code ARG_UNUSED (op))
7970{
7971/* #line 3651 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7972 if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (type)) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], captures[4]) && (tree_int_cst_min_precision (captures[5], TYPE_SIGN (TREE_TYPE (captures[2]))) <= TYPE_PRECISION (TREE_TYPE (captures[2]))) && (wi::bit_and (captures[5], wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])), true, TYPE_PRECISION (type))) == 0))
7973 {
7974/* #line 3671 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7975 if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
7976 {
7977 {
7978/* #line 3672 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
7979 tree ntype = TREE_TYPE (captures[2]);
7980 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3673, %s:%d\n", __FILE__, __LINE__);
7981 tree res_op0;
7982 {
7983 tree ops1[2], res;
7984 {
7985 tree ops2[2], res;
7986 ops2[0] = captures[2];
7987 ops2[1] = captures[4];
7988 res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
7989 ops1[0] = res;
7990 }
7991 {
7992 tree ops2[1], res;
7993 ops2[0] = captures[5];
7994 if (TREE_TYPE (ops2[0]) != ntype)
7995 res = fold_build1_loc (loc, NOP_EXPR, ntype, ops2[0]);
7996 else
7997 res = ops2[0];
7998 ops1[1] = res;
7999 }
8000 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
8001 res_op0 = res;
8002 }
8003 tree res;
8004 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
8005 return res;
8006 }
8007 }
8008 else
8009 {
8010 {
8011/* #line 3674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8012 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
8013 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3675, %s:%d\n", __FILE__, __LINE__);
8014 tree res_op0;
8015 {
8016 tree ops1[2], res;
8017 {
8018 tree ops2[2], res;
8019 {
8020 tree ops3[1], res;
8021 ops3[0] = captures[2];
8022 if (TREE_TYPE (ops3[0]) != utype)
8023 res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
8024 else
8025 res = ops3[0];
8026 ops2[0] = res;
8027 }
8028 {
8029 tree ops3[1], res;
8030 ops3[0] = captures[4];
8031 if (TREE_TYPE (ops3[0]) != utype)
8032 res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
8033 else
8034 res = ops3[0];
8035 ops2[1] = res;
8036 }
8037 res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
8038 ops1[0] = res;
8039 }
8040 {
8041 tree ops2[1], res;
8042 ops2[0] = captures[5];
8043 if (TREE_TYPE (ops2[0]) != utype)
8044 res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
8045 else
8046 res = ops2[0];
8047 ops1[1] = res;
8048 }
8049 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
8050 res_op0 = res;
8051 }
8052 tree res;
8053 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
8054 return res;
8055 }
8056 }
8057 }
8058 return NULL_TREE;
8059}
8060
8061static tree
8062generic_simplify_199 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8063 tree ARG_UNUSED (op0), tree *captures
8064, combined_fn ARG_UNUSED (fns))
8065{
8066 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3251, %s:%d\n", __FILE__, __LINE__);
8067 tree res_op0;
8068 res_op0 = captures[0];
8069 tree res;
8070 res = maybe_build_call_expr_loc (loc, fns, type, 1, res_op0);
8071 if (!res)
8072 return NULL_TREE;
8073 return res;
8074 return NULL_TREE;
8075}
8076
8077static tree
8078generic_simplify_200 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8079 tree ARG_UNUSED (op0), tree *captures
8080)
8081{
8082/* #line 975 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8083 if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
8084 {
8085 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:977, %s:%d\n", __FILE__, __LINE__);
8086 tree res_op0;
8087 {
8088 tree ops1[2], res;
8089 ops1[0] = captures[0];
8090 ops1[1] = build_each_one_cst (TREE_TYPE (captures[0]));
8091 res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
8092 res_op0 = res;
8093 }
8094 tree res;
8095 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
8096 return res;
8097 }
8098 return NULL_TREE;
8099}
8100
8101static tree
8102generic_simplify_201 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8103 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8104, combined_fn ARG_UNUSED (COPYSIGN))
8105{
8106 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3276, %s:%d\n", __FILE__, __LINE__);
8107 tree res_op0;
8108 res_op0 = captures[0];
8109 tree res;
8110 res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
8111 if (TREE_SIDE_EFFECTS (captures[1]))
8112 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8113 return res;
8114 return NULL_TREE;
8115}
8116
8117static tree
8118generic_simplify_202 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8119 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8120, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
8121{
8122/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8123 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
8124 {
8125 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
8126 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3071, %s:%d\n", __FILE__, __LINE__);
8127 tree res_op0;
8128 {
8129 tree ops1[1], res;
8130 ops1[0] = captures[0];
8131 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
8132 res_op0 = res;
8133 }
8134 tree res_op1;
8135 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
8136 tree res;
8137 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
8138 return res;
8139 }
8140 return NULL_TREE;
8141}
8142
8143static tree
8144generic_simplify_203 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8145 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8146, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out))
8147{
8148/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8149 if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
8150 {
8151 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
8152 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3079, %s:%d\n", __FILE__, __LINE__);
8153 tree res_op0;
8154 {
8155 tree ops1[1], res;
8156 ops1[0] = captures[0];
8157 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
8158 res_op0 = res;
8159 }
8160 tree res_op1;
8161 res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
8162 tree res;
8163 res = fold_build2_loc (loc, out, type, res_op0, res_op1);
8164 return res;
8165 }
8166 return NULL_TREE;
8167}
8168
8169static tree
8170generic_simplify_204 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8171 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8172, enum tree_code ARG_UNUSED (div))
8173{
8174/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8175 if (!TYPE_UNSIGNED (type))
8176 {
8177 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:164, %s:%d\n", __FILE__, __LINE__);
8178 tree res_op0;
8179 res_op0 = captures[0];
8180 tree res;
8181 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
8182 if (TREE_SIDE_EFFECTS (captures[1]))
8183 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8184 return res;
8185 }
8186 return NULL_TREE;
8187}
8188
8189static tree
8190generic_simplify_205 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8191 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8192)
8193{
8194 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3588, %s:%d\n", __FILE__, __LINE__);
8195 tree res;
8196 res = captures[0];
8197 if (TREE_SIDE_EFFECTS (captures[1]))
8198 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8199 return res;
8200 return NULL_TREE;
8201}
8202
8203static tree
8204generic_simplify_206 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8205 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8206, enum tree_code ARG_UNUSED (neeq))
8207{
8208/* #line 2919 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8209 if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && ptrs_compare_unequal (captures[0], captures[1]))
8210 {
8211 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2921, %s:%d\n", __FILE__, __LINE__);
8212 tree res;
8213 res = neeq == EQ_EXPR ? boolean_false_node : boolean_true_node;
8214 if (TREE_SIDE_EFFECTS (captures[0]))
8215 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
8216 if (TREE_SIDE_EFFECTS (captures[1]))
8217 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8218 return res;
8219 }
8220 return NULL_TREE;
8221}
8222
8223static tree
8224generic_simplify_207 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8225 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8226, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (cmp))
8227{
8228/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8229 if (flag_unsafe_math_optimizations)
8230 {
8231 {
8232/* #line 2477 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8233 tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR, TREE_TYPE (captures[1]), captures[2], captures[1]);
8234/* #line 2482 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8235 if (tem && !TREE_OVERFLOW (tem))
8236 {
8237 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
8238 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
8239 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2483, %s:%d\n", __FILE__, __LINE__);
8240 tree res_op0;
8241 res_op0 = captures[0];
8242 tree res_op1;
8243 res_op1 = tem;
8244 tree res;
8245 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
8246 return res;
8247 }
8248 }
8249 }
8250 return NULL_TREE;
8251}
8252
8253static tree
8254generic_simplify_208 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8255 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8256, combined_fn ARG_UNUSED (pows), combined_fn ARG_UNUSED (copysigns))
8257{
8258 {
8259/* #line 450 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8260 HOST_WIDE_INT n;
8261/* #line 451 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8262 if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0)
8263 {
8264 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:452, %s:%d\n", __FILE__, __LINE__);
8265 tree res_op0;
8266 res_op0 = captures[0];
8267 tree res_op1;
8268 res_op1 = captures[2];
8269 tree res;
8270 res = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
8271 if (!res)
8272 return NULL_TREE;
8273 if (TREE_SIDE_EFFECTS (captures[1]))
8274 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8275 return res;
8276 }
8277 }
8278 return NULL_TREE;
8279}
8280
8281static tree
8282generic_simplify_209 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8283 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8284, enum tree_code ARG_UNUSED (cmp))
8285{
8286/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8287 if (flag_associative_math)
8288 {
8289 {
8290/* #line 2492 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8291 tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
8292/* #line 2493 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8293 if (tem && !TREE_OVERFLOW (tem))
8294 {
8295 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
8296 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
8297 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2494, %s:%d\n", __FILE__, __LINE__);
8298 tree res_op0;
8299 res_op0 = tem;
8300 tree res_op1;
8301 res_op1 = captures[1];
8302 tree res;
8303 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
8304 return res;
8305 }
8306 }
8307 }
8308 return NULL_TREE;
8309}
8310
8311static tree
8312generic_simplify_210 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8313 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8314, enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop))
8315{
8316 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:912, %s:%d\n", __FILE__, __LINE__);
8317 tree res;
8318 res = captures[0];
8319 if (TREE_SIDE_EFFECTS (captures[1]))
8320 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8321 return res;
8322 return NULL_TREE;
8323}
8324
8325static tree
8326generic_simplify_211 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8327 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8328, enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop))
8329{
8330 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
8331 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:674, %s:%d\n", __FILE__, __LINE__);
8332 tree res_op0;
8333 res_op0 = captures[1];
8334 tree res_op1;
8335 res_op1 = captures[2];
8336 tree res;
8337 res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
8338 return res;
8339 return NULL_TREE;
8340}
8341
8342static tree
8343generic_simplify_212 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8344 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8345, enum tree_code ARG_UNUSED (cmp))
8346{
8347/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8348 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && tree_expr_nonzero_p (captures[1]))
8349 {
8350 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1021, %s:%d\n", __FILE__, __LINE__);
8351 tree res_op0;
8352 res_op0 = captures[0];
8353 tree res_op1;
8354 res_op1 = captures[2];
8355 tree res;
8356 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
8357 if (TREE_SIDE_EFFECTS (captures[1]))
8358 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8359 return res;
8360 }
8361 return NULL_TREE;
8362}
8363
8364static tree
8365generic_simplify_213 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8366 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8367, enum tree_code ARG_UNUSED (cmp))
8368{
8369/* #line 2314 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8370 if (single_use (captures[0]))
8371 {
8372 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
8373 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2315, %s:%d\n", __FILE__, __LINE__);
8374 tree res_op0;
8375 res_op0 = captures[1];
8376 tree res_op1;
8377 res_op1 = captures[2];
8378 tree res;
8379 res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
8380 return res;
8381 }
8382 return NULL_TREE;
8383}
8384
8385static tree
8386generic_simplify_214 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8387 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8388, enum tree_code ARG_UNUSED (op))
8389{
8390 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:960, %s:%d\n", __FILE__, __LINE__);
8391 tree res;
8392 res = constant_boolean_node (true, type);
8393 if (TREE_SIDE_EFFECTS (captures[0]))
8394 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
8395 return res;
8396 return NULL_TREE;
8397}
8398
8399static tree
8400generic_simplify_215 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8401 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8402, enum tree_code ARG_UNUSED (cmp))
8403{
8404/* #line 2776 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8405 if (tree_single_nonzero_warnv_p (captures[0], NULL))
8406 {
8407 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
8408 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2777, %s:%d\n", __FILE__, __LINE__);
8409 tree res;
8410 res = constant_boolean_node (cmp == NE_EXPR, type);
8411 if (TREE_SIDE_EFFECTS (captures[0]))
8412 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
8413 return res;
8414 }
8415 return NULL_TREE;
8416}
8417
8418static tree
8419generic_simplify_216 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8420 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8421, enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (ext))
8422{
8423/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8424 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TREE_CODE (captures[1]) != INTEGER_CST)
8425 {
8426 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3686, %s:%d\n", __FILE__, __LINE__);
8427 tree res_op0;
8428 res_op0 = captures[1];
8429 tree res_op1;
8430 {
8431 tree ops1[2], res;
8432 ops1[0] = captures[2];
8433 ops1[1] = captures[4];
8434 res = fold_build2_loc (loc, ext, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
8435 res_op1 = res;
8436 }
8437 tree res;
8438 res = fold_build2_loc (loc, op, type, res_op0, res_op1);
8439 return res;
8440 }
8441 return NULL_TREE;
8442}
8443
8444static tree
8445generic_simplify_217 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8446 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8447, enum tree_code ARG_UNUSED (inner_op), enum tree_code ARG_UNUSED (outer_op))
8448{
8449/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8450 if (!TYPE_SATURATING (type))
8451 {
8452/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8453 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
8454 {
8455 {
8456/* #line 1219 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8457 tree cst = const_binop (outer_op == inner_op ? PLUS_EXPR : MINUS_EXPR, type, captures[1], captures[2]);
8458/* #line 1221 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8459 if (cst && !TREE_OVERFLOW (cst))
8460 {
8461 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
8462 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
8463 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1222, %s:%d\n", __FILE__, __LINE__);
8464 tree res_op0;
8465 res_op0 = captures[0];
8466 tree res_op1;
8467 res_op1 = cst;
8468 tree res;
8469 res = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
8470 return res;
8471 }
8472 }
8473 }
8474 }
8475 return NULL_TREE;
8476}
8477
8478static tree
8479generic_simplify_218 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8480 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8481, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp))
8482{
8483/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8484 if (single_use (captures[0]) && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST))
8485 {
8486 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2380, %s:%d\n", __FILE__, __LINE__);
8487 tree res_op0;
8488 res_op0 = captures[1];
8489 tree res_op1;
8490 {
8491 tree ops1[1], res;
8492 ops1[0] = captures[2];
8493 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
8494 res_op1 = res;
8495 }
8496 tree res;
8497 res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
8498 return res;
8499 }
8500 return NULL_TREE;
8501}
8502
8503static tree
8504generic_simplify_219 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8505 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8506)
8507{
8508 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3286, %s:%d\n", __FILE__, __LINE__);
8509 tree res;
8510 res = captures[0];
8511 if (TREE_SIDE_EFFECTS (captures[1]))
8512 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
8513 return res;
8514 return NULL_TREE;
8515}
8516
8517static tree
8518generic_simplify_220 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8519 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8520)
8521{
8522 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1887, %s:%d\n", __FILE__, __LINE__);
8523 tree res_op0;
8524 res_op0 = captures[0];
8525 tree res;
8526 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
8527 if (TREE_SIDE_EFFECTS (captures[2]))
8528 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
8529 return res;
8530 return NULL_TREE;
8531}
8532
8533static tree
8534generic_simplify_221 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8535 tree ARG_UNUSED (op0), tree *captures
8536, combined_fn ARG_UNUSED (tans), combined_fn ARG_UNUSED (atans))
8537{
8538/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8539 if (flag_unsafe_math_optimizations)
8540 {
8541 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__);
8542 tree res;
8543 res = captures[0];
8544 return res;
8545 }
8546 return NULL_TREE;
8547}
8548
8549static tree
8550generic_simplify_222 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8551 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8552, combined_fn ARG_UNUSED (POW))
8553{
8554/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8555 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
8556 {
8557 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3361, %s:%d\n", __FILE__, __LINE__);
8558 tree res_op0;
8559 res_op0 = captures[0];
8560 tree res_op1;
8561 {
8562 tree ops1[2], res;
8563 ops1[0] = captures[2];
8564 {
8565 tree ops2[1], res;
8566 ops2[0] = captures[3];
8567 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
8568 ops1[1] = res;
8569 }
8570 {
8571 res = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (ops1[0]), 2, ops1[0], ops1[1]);
8572 if (!res)
8573 return NULL_TREE;
8574 }
8575 res_op1 = res;
8576 }
8577 tree res;
8578 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
8579 return res;
8580 }
8581 return NULL_TREE;
8582}
8583
8584static tree
8585generic_simplify_223 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8586 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8587)
8588{
8589 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1343, %s:%d\n", __FILE__, __LINE__);
8590 tree res;
8591 res = captures[0];
8592 return res;
8593 return NULL_TREE;
8594}
8595
8596static tree
8597generic_simplify_224 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8598 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8599, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (acmp))
8600{
8601/* #line 2267 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8602 if (tree_int_cst_sgn (captures[1]) == 1)
8603 {
8604 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
8605 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2268, %s:%d\n", __FILE__, __LINE__);
8606 tree res_op0;
8607 res_op0 = captures[0];
8608 tree res_op1;
8609 res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]), wi::sub (captures[1], 1));
8610 tree res;
8611 res = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
8612 return res;
8613 }
8614 return NULL_TREE;
8615}
8616
8617static tree
8618generic_simplify_225 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8619 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8620, enum tree_code ARG_UNUSED (shift))
8621{
8622/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8623 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
8624 {
8625 {
8626/* #line 1610 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8627 unsigned int shiftc = tree_to_uhwi (captures[4]);
8628 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
8629 unsigned HOST_WIDE_INT newmask, zerobits = 0;
8630 tree shift_type = TREE_TYPE (captures[2]);
8631 unsigned int prec;
8632 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
8633 else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (shift_type)))) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
8634 tree arg00 = captures[3];
8635 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
8636 if ((TYPE_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (inner_type))) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
8637 if (shiftc < prec) shift_type = inner_type;
8638 } } zerobits = HOST_WIDE_INT_M1U;
8639 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
8640 zerobits <<= prec - shiftc;
8641 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
8642 else zerobits = 0;
8643 } }/* #line 1666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8644 if ((mask & zerobits) == mask)
8645 {
8646 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
8647 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
8648 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
8649 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
8650 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__);
8651 tree res;
8652 res = build_int_cst (type, 0);
8653 return res;
8654 }
8655 else
8656 {
8657 {
8658/* #line 1668 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8659 newmask = mask | zerobits;
8660/* #line 1669 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8661 if (newmask != mask && (newmask & (newmask + 1)) == 0)
8662 {
8663 {
8664/* #line 1670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8665 for (prec = BITS_PER_UNIT;
8666 prec < HOST_BITS_PER_WIDE_INT;
8667 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
8668/* #line 1679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8669 if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
8670 {
8671 {
8672/* #line 1681 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8673 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
8674/* #line 1683 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8675 if (!tree_int_cst_equal (newmaskt, captures[5]))
8676 {
8677/* #line 1684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8678 if (shift_type != TREE_TYPE (captures[2]))
8679 {
8680 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
8681 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
8682 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__);
8683 tree res_op0;
8684 {
8685 tree ops1[1], res;
8686 {
8687 tree ops2[2], res;
8688 {
8689 tree ops3[1], res;
8690 ops3[0] = captures[2];
8691 if (TREE_TYPE (ops3[0]) != shift_type)
8692 res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
8693 else
8694 res = ops3[0];
8695 ops2[0] = res;
8696 }
8697 ops2[1] = captures[4];
8698 res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
8699 ops1[0] = res;
8700 }
8701 if (TREE_TYPE (ops1[0]) != type)
8702 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
8703 else
8704 res = ops1[0];
8705 res_op0 = res;
8706 }
8707 tree res_op1;
8708 res_op1 = newmaskt;
8709 tree res;
8710 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
8711 return res;
8712 }
8713 else
8714 {
8715 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
8716 if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
8717 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__);
8718 tree res_op0;
8719 res_op0 = captures[0];
8720 tree res_op1;
8721 res_op1 = newmaskt;
8722 tree res;
8723 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
8724 return res;
8725 }
8726 }
8727 }
8728 }
8729 }
8730 }
8731 }
8732 }
8733 }
8734 }
8735 return NULL_TREE;
8736}
8737
8738static tree
8739generic_simplify_226 (location_t ARG_UNUSED (loc), tree ARG_UNUSED (type),
8740 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
8741, enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp), enum tree_code ARG_UNUSED (ncmp))
8742{
8743 {
8744/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8745 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
8746/* #line 2301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8747 if (ic == icmp)
8748 {
8749 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
8750 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2302, %s:%d\n", __FILE__, __LINE__);
8751 tree res_op0;
8752 res_op0 = captures[0];
8753 tree res_op1;
8754 res_op1 = captures[1];
8755 tree res;
8756 res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
8757 return res;
8758 }
8759 else
8760 {
8761/* #line 2303 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8762 if (ic == ncmp)
8763 {
8764 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
8765 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2304, %s:%d\n", __FILE__, __LINE__);
8766 tree res_op0;
8767 res_op0 = captures[0];
8768 tree res_op1;
8769 res_op1 = captures[1];
8770 tree res;
8771 res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
8772 return res;
8773 }
8774 }
8775 }
8776 return NULL_TREE;
8777}
8778
8779static tree
8780generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
8781{
8782 switch (TREE_CODE (op0))
8783 {
8784 case ABS_EXPR:
8785 {
8786 tree o20 = TREE_OPERAND (op0, 0);
8787 {
8788/* #line 827 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8789 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
8790 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
8791 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:827, %s:%d\n", __FILE__, __LINE__);
8792 tree res;
8793 res = captures[0];
8794 return res;
8795 }
8796 break;
8797 }
8798 case NEGATE_EXPR:
8799 {
8800 tree o20 = TREE_OPERAND (op0, 0);
8801 {
8802/* #line 830 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8803 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
8804 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:830, %s:%d\n", __FILE__, __LINE__);
8805 tree res_op0;
8806 res_op0 = captures[0];
8807 tree res;
8808 res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
8809 return res;
8810 }
8811 break;
8812 }
8813 default:;
8814 }
8815if (tree_expr_nonnegative_p (op0))
8816 {
8817 {
8818/* #line 833 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8819 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
8820 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:833, %s:%d\n", __FILE__, __LINE__);
8821 tree res;
8822 res = captures[0];
8823 return res;
8824 }
8825 }
8826 return NULL_TREE;
8827}
8828
8829static tree
8830generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
8831{
8832 switch (TREE_CODE (op0))
8833 {
8834 case PLUS_EXPR:
8835 {
8836 tree o20 = TREE_OPERAND (op0, 0);
8837 tree o21 = TREE_OPERAND (op0, 1);
8838 if (tree_negate_expr_p (o21))
8839 {
8840 {
8841/* #line 866 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8842 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
8843 tree res = generic_simplify_10 (loc, type, op0, captures);
8844 if (res) return res;
8845 }
8846 }
8847 if (tree_negate_expr_p (o20))
8848 {
8849 {
8850/* #line 866 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8851 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
8852 tree res = generic_simplify_10 (loc, type, op0, captures);
8853 if (res) return res;
8854 }
8855 }
8856 break;
8857 }
8858 CASE_CONVERT:
8859 {
8860 tree o20 = TREE_OPERAND (op0, 0);
8861 switch (TREE_CODE (o20))
8862 {
8863 case NEGATE_EXPR:
8864 {
8865 tree o30 = TREE_OPERAND (o20, 0);
8866 {
8867/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8868 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
8869 tree res = generic_simplify_114 (loc, type, op0, captures);
8870 if (res) return res;
8871 }
8872 break;
8873 }
8874 default:;
8875 }
8876 break;
8877 }
8878 case NEGATE_EXPR:
8879 {
8880 tree o20 = TREE_OPERAND (op0, 0);
8881 {
8882/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8883 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
8884 tree res = generic_simplify_114 (loc, type, op0, captures);
8885 if (res) return res;
8886 }
8887 break;
8888 }
8889 default:;
8890 }
8891 return NULL_TREE;
8892}
8893
8894static tree
8895generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
8896{
8897 switch (TREE_CODE (op0))
8898 {
8899 case BIT_NOT_EXPR:
8900 {
8901 tree o20 = TREE_OPERAND (op0, 0);
8902 {
8903/* #line 970 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8904 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
8905 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:970, %s:%d\n", __FILE__, __LINE__);
8906 tree res;
8907 res = captures[0];
8908 return res;
8909 }
8910 break;
8911 }
8912 CASE_CONVERT:
8913 {
8914 tree o20 = TREE_OPERAND (op0, 0);
8915 switch (TREE_CODE (o20))
8916 {
8917 case NEGATE_EXPR:
8918 {
8919 tree o30 = TREE_OPERAND (o20, 0);
8920 {
8921/* #line 975 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8922 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
8923 tree res = generic_simplify_200 (loc, type, op0, captures);
8924 if (res) return res;
8925 }
8926 break;
8927 }
8928 case MINUS_EXPR:
8929 {
8930 tree o30 = TREE_OPERAND (o20, 0);
8931 tree o31 = TREE_OPERAND (o20, 1);
8932 if (integer_each_onep (o31))
8933 {
8934 {
8935/* #line 982 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8936 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
8937 tree res = generic_simplify_80 (loc, type, op0, captures);
8938 if (res) return res;
8939 }
8940 }
8941 break;
8942 }
8943 case PLUS_EXPR:
8944 {
8945 tree o30 = TREE_OPERAND (o20, 0);
8946 tree o31 = TREE_OPERAND (o20, 1);
8947 if (integer_all_onesp (o31))
8948 {
8949 {
8950/* #line 987 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8951 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
8952 tree res = generic_simplify_157 (loc, type, op0, captures);
8953 if (res) return res;
8954 }
8955 }
8956 break;
8957 }
8958 case BIT_XOR_EXPR:
8959 {
8960 tree o30 = TREE_OPERAND (o20, 0);
8961 tree o31 = TREE_OPERAND (o20, 1);
8962 switch (TREE_CODE (o31))
8963 {
8964 case INTEGER_CST:
8965 {
8966 {
8967/* #line 994 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8968 tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
8969 tree res = generic_simplify_104 (loc, type, op0, captures);
8970 if (res) return res;
8971 }
8972 break;
8973 }
8974 default:;
8975 }
8976 switch (TREE_CODE (o30))
8977 {
8978 case BIT_NOT_EXPR:
8979 {
8980 tree o40 = TREE_OPERAND (o30, 0);
8981 {
8982/* #line 998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8983 tree captures[2] ATTRIBUTE_UNUSED = { o40, o31 };
8984 tree res = generic_simplify_82 (loc, type, op0, captures);
8985 if (res) return res;
8986 }
8987 break;
8988 }
8989 default:;
8990 }
8991 switch (TREE_CODE (o31))
8992 {
8993 case BIT_NOT_EXPR:
8994 {
8995 tree o50 = TREE_OPERAND (o31, 0);
8996 {
8997/* #line 998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
8998 tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
8999 tree res = generic_simplify_82 (loc, type, op0, captures);
9000 if (res) return res;
9001 }
9002 break;
9003 }
9004 default:;
9005 }
9006 break;
9007 }
9008 case RSHIFT_EXPR:
9009 {
9010 tree o30 = TREE_OPERAND (o20, 0);
9011 tree o31 = TREE_OPERAND (o20, 1);
9012 switch (TREE_CODE (o30))
9013 {
9014 CASE_CONVERT:
9015 {
9016 tree o40 = TREE_OPERAND (o30, 0);
9017 switch (TREE_CODE (o40))
9018 {
9019 case BIT_NOT_EXPR:
9020 {
9021 tree o50 = TREE_OPERAND (o40, 0);
9022 {
9023/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9024 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
9025 tree res = generic_simplify_160 (loc, type, op0, captures);
9026 if (res) return res;
9027 }
9028 break;
9029 }
9030 default:;
9031 }
9032 break;
9033 }
9034 case BIT_NOT_EXPR:
9035 {
9036 tree o40 = TREE_OPERAND (o30, 0);
9037 {
9038/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9039 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
9040 tree res = generic_simplify_160 (loc, type, op0, captures);
9041 if (res) return res;
9042 }
9043 break;
9044 }
9045 default:;
9046 }
9047 break;
9048 }
9049 case LROTATE_EXPR:
9050 {
9051 tree o30 = TREE_OPERAND (o20, 0);
9052 tree o31 = TREE_OPERAND (o20, 1);
9053 switch (TREE_CODE (o30))
9054 {
9055 CASE_CONVERT:
9056 {
9057 tree o40 = TREE_OPERAND (o30, 0);
9058 switch (TREE_CODE (o40))
9059 {
9060 case BIT_NOT_EXPR:
9061 {
9062 tree o50 = TREE_OPERAND (o40, 0);
9063 {
9064/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9065 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
9066 tree res = generic_simplify_69 (loc, type, op0, captures, LROTATE_EXPR);
9067 if (res) return res;
9068 }
9069 break;
9070 }
9071 default:;
9072 }
9073 break;
9074 }
9075 case BIT_NOT_EXPR:
9076 {
9077 tree o40 = TREE_OPERAND (o30, 0);
9078 {
9079/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9080 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
9081 tree res = generic_simplify_69 (loc, type, op0, captures, LROTATE_EXPR);
9082 if (res) return res;
9083 }
9084 break;
9085 }
9086 default:;
9087 }
9088 break;
9089 }
9090 case RROTATE_EXPR:
9091 {
9092 tree o30 = TREE_OPERAND (o20, 0);
9093 tree o31 = TREE_OPERAND (o20, 1);
9094 switch (TREE_CODE (o30))
9095 {
9096 CASE_CONVERT:
9097 {
9098 tree o40 = TREE_OPERAND (o30, 0);
9099 switch (TREE_CODE (o40))
9100 {
9101 case BIT_NOT_EXPR:
9102 {
9103 tree o50 = TREE_OPERAND (o40, 0);
9104 {
9105/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9106 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
9107 tree res = generic_simplify_69 (loc, type, op0, captures, RROTATE_EXPR);
9108 if (res) return res;
9109 }
9110 break;
9111 }
9112 default:;
9113 }
9114 break;
9115 }
9116 case BIT_NOT_EXPR:
9117 {
9118 tree o40 = TREE_OPERAND (o30, 0);
9119 {
9120/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9121 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
9122 tree res = generic_simplify_69 (loc, type, op0, captures, RROTATE_EXPR);
9123 if (res) return res;
9124 }
9125 break;
9126 }
9127 default:;
9128 }
9129 break;
9130 }
9131 default:;
9132 }
9133 break;
9134 }
9135 case NEGATE_EXPR:
9136 {
9137 tree o20 = TREE_OPERAND (op0, 0);
9138 {
9139/* #line 975 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9140 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
9141 tree res = generic_simplify_200 (loc, type, op0, captures);
9142 if (res) return res;
9143 }
9144 break;
9145 }
9146 case MINUS_EXPR:
9147 {
9148 tree o20 = TREE_OPERAND (op0, 0);
9149 tree o21 = TREE_OPERAND (op0, 1);
9150 if (integer_each_onep (o21))
9151 {
9152 {
9153/* #line 982 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9154 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
9155 tree res = generic_simplify_80 (loc, type, op0, captures);
9156 if (res) return res;
9157 }
9158 }
9159 break;
9160 }
9161 case PLUS_EXPR:
9162 {
9163 tree o20 = TREE_OPERAND (op0, 0);
9164 tree o21 = TREE_OPERAND (op0, 1);
9165 if (integer_all_onesp (o21))
9166 {
9167 {
9168/* #line 987 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9169 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
9170 tree res = generic_simplify_157 (loc, type, op0, captures);
9171 if (res) return res;
9172 }
9173 }
9174 break;
9175 }
9176 case BIT_XOR_EXPR:
9177 {
9178 tree o20 = TREE_OPERAND (op0, 0);
9179 tree o21 = TREE_OPERAND (op0, 1);
9180 switch (TREE_CODE (o21))
9181 {
9182 case INTEGER_CST:
9183 {
9184 {
9185/* #line 994 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9186 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9187 tree res = generic_simplify_104 (loc, type, op0, captures);
9188 if (res) return res;
9189 }
9190 break;
9191 }
9192 default:;
9193 }
9194 switch (TREE_CODE (o20))
9195 {
9196 case BIT_NOT_EXPR:
9197 {
9198 tree o30 = TREE_OPERAND (o20, 0);
9199 {
9200/* #line 998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9201 tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
9202 tree res = generic_simplify_82 (loc, type, op0, captures);
9203 if (res) return res;
9204 }
9205 break;
9206 }
9207 default:;
9208 }
9209 switch (TREE_CODE (o21))
9210 {
9211 case BIT_NOT_EXPR:
9212 {
9213 tree o40 = TREE_OPERAND (o21, 0);
9214 {
9215/* #line 998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9216 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
9217 tree res = generic_simplify_82 (loc, type, op0, captures);
9218 if (res) return res;
9219 }
9220 break;
9221 }
9222 default:;
9223 }
9224 break;
9225 }
9226 case RSHIFT_EXPR:
9227 {
9228 tree o20 = TREE_OPERAND (op0, 0);
9229 tree o21 = TREE_OPERAND (op0, 1);
9230 switch (TREE_CODE (o20))
9231 {
9232 CASE_CONVERT:
9233 {
9234 tree o30 = TREE_OPERAND (o20, 0);
9235 switch (TREE_CODE (o30))
9236 {
9237 case BIT_NOT_EXPR:
9238 {
9239 tree o40 = TREE_OPERAND (o30, 0);
9240 {
9241/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9242 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
9243 tree res = generic_simplify_58 (loc, type, op0, captures);
9244 if (res) return res;
9245 }
9246 break;
9247 }
9248 default:;
9249 }
9250 break;
9251 }
9252 case BIT_NOT_EXPR:
9253 {
9254 tree o30 = TREE_OPERAND (o20, 0);
9255 {
9256/* #line 1701 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9257 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
9258 tree res = generic_simplify_58 (loc, type, op0, captures);
9259 if (res) return res;
9260 }
9261 break;
9262 }
9263 default:;
9264 }
9265 break;
9266 }
9267 case LROTATE_EXPR:
9268 {
9269 tree o20 = TREE_OPERAND (op0, 0);
9270 tree o21 = TREE_OPERAND (op0, 1);
9271 switch (TREE_CODE (o20))
9272 {
9273 CASE_CONVERT:
9274 {
9275 tree o30 = TREE_OPERAND (o20, 0);
9276 switch (TREE_CODE (o30))
9277 {
9278 case BIT_NOT_EXPR:
9279 {
9280 tree o40 = TREE_OPERAND (o30, 0);
9281 {
9282/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9283 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
9284 tree res = generic_simplify_171 (loc, type, op0, captures, LROTATE_EXPR);
9285 if (res) return res;
9286 }
9287 break;
9288 }
9289 default:;
9290 }
9291 break;
9292 }
9293 case BIT_NOT_EXPR:
9294 {
9295 tree o30 = TREE_OPERAND (o20, 0);
9296 {
9297/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9298 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
9299 tree res = generic_simplify_171 (loc, type, op0, captures, LROTATE_EXPR);
9300 if (res) return res;
9301 }
9302 break;
9303 }
9304 default:;
9305 }
9306 break;
9307 }
9308 case RROTATE_EXPR:
9309 {
9310 tree o20 = TREE_OPERAND (op0, 0);
9311 tree o21 = TREE_OPERAND (op0, 1);
9312 switch (TREE_CODE (o20))
9313 {
9314 CASE_CONVERT:
9315 {
9316 tree o30 = TREE_OPERAND (o20, 0);
9317 switch (TREE_CODE (o30))
9318 {
9319 case BIT_NOT_EXPR:
9320 {
9321 tree o40 = TREE_OPERAND (o30, 0);
9322 {
9323/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9324 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
9325 tree res = generic_simplify_171 (loc, type, op0, captures, RROTATE_EXPR);
9326 if (res) return res;
9327 }
9328 break;
9329 }
9330 default:;
9331 }
9332 break;
9333 }
9334 case BIT_NOT_EXPR:
9335 {
9336 tree o30 = TREE_OPERAND (o20, 0);
9337 {
9338/* #line 1714 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9339 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
9340 tree res = generic_simplify_171 (loc, type, op0, captures, RROTATE_EXPR);
9341 if (res) return res;
9342 }
9343 break;
9344 }
9345 default:;
9346 }
9347 break;
9348 }
9349 case LT_EXPR:
9350 {
9351 tree o20 = TREE_OPERAND (op0, 0);
9352 tree o21 = TREE_OPERAND (op0, 1);
9353 {
9354/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9355 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9356 tree res = generic_simplify_103 (loc, type, op0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
9357 if (res) return res;
9358 }
9359 break;
9360 }
9361 case LE_EXPR:
9362 {
9363 tree o20 = TREE_OPERAND (op0, 0);
9364 tree o21 = TREE_OPERAND (op0, 1);
9365 {
9366/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9367 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9368 tree res = generic_simplify_103 (loc, type, op0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
9369 if (res) return res;
9370 }
9371 break;
9372 }
9373 case EQ_EXPR:
9374 {
9375 tree o20 = TREE_OPERAND (op0, 0);
9376 tree o21 = TREE_OPERAND (op0, 1);
9377 {
9378/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9379 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9380 tree res = generic_simplify_103 (loc, type, op0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
9381 if (res) return res;
9382 }
9383 break;
9384 }
9385 case NE_EXPR:
9386 {
9387 tree o20 = TREE_OPERAND (op0, 0);
9388 tree o21 = TREE_OPERAND (op0, 1);
9389 {
9390/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9391 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9392 tree res = generic_simplify_103 (loc, type, op0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
9393 if (res) return res;
9394 }
9395 break;
9396 }
9397 case GE_EXPR:
9398 {
9399 tree o20 = TREE_OPERAND (op0, 0);
9400 tree o21 = TREE_OPERAND (op0, 1);
9401 {
9402/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9403 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9404 tree res = generic_simplify_103 (loc, type, op0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
9405 if (res) return res;
9406 }
9407 break;
9408 }
9409 case GT_EXPR:
9410 {
9411 tree o20 = TREE_OPERAND (op0, 0);
9412 tree o21 = TREE_OPERAND (op0, 1);
9413 {
9414/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9415 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9416 tree res = generic_simplify_103 (loc, type, op0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
9417 if (res) return res;
9418 }
9419 break;
9420 }
9421 case UNORDERED_EXPR:
9422 {
9423 tree o20 = TREE_OPERAND (op0, 0);
9424 tree o21 = TREE_OPERAND (op0, 1);
9425 {
9426/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9427 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9428 tree res = generic_simplify_103 (loc, type, op0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
9429 if (res) return res;
9430 }
9431 break;
9432 }
9433 case ORDERED_EXPR:
9434 {
9435 tree o20 = TREE_OPERAND (op0, 0);
9436 tree o21 = TREE_OPERAND (op0, 1);
9437 {
9438/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9439 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9440 tree res = generic_simplify_103 (loc, type, op0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
9441 if (res) return res;
9442 }
9443 break;
9444 }
9445 case UNLT_EXPR:
9446 {
9447 tree o20 = TREE_OPERAND (op0, 0);
9448 tree o21 = TREE_OPERAND (op0, 1);
9449 {
9450/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9451 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9452 tree res = generic_simplify_103 (loc, type, op0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
9453 if (res) return res;
9454 }
9455 break;
9456 }
9457 case UNLE_EXPR:
9458 {
9459 tree o20 = TREE_OPERAND (op0, 0);
9460 tree o21 = TREE_OPERAND (op0, 1);
9461 {
9462/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9463 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9464 tree res = generic_simplify_103 (loc, type, op0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
9465 if (res) return res;
9466 }
9467 break;
9468 }
9469 case UNGT_EXPR:
9470 {
9471 tree o20 = TREE_OPERAND (op0, 0);
9472 tree o21 = TREE_OPERAND (op0, 1);
9473 {
9474/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9475 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9476 tree res = generic_simplify_103 (loc, type, op0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
9477 if (res) return res;
9478 }
9479 break;
9480 }
9481 case UNGE_EXPR:
9482 {
9483 tree o20 = TREE_OPERAND (op0, 0);
9484 tree o21 = TREE_OPERAND (op0, 1);
9485 {
9486/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9487 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9488 tree res = generic_simplify_103 (loc, type, op0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
9489 if (res) return res;
9490 }
9491 break;
9492 }
9493 case UNEQ_EXPR:
9494 {
9495 tree o20 = TREE_OPERAND (op0, 0);
9496 tree o21 = TREE_OPERAND (op0, 1);
9497 {
9498/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9499 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9500 tree res = generic_simplify_103 (loc, type, op0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
9501 if (res) return res;
9502 }
9503 break;
9504 }
9505 case LTGT_EXPR:
9506 {
9507 tree o20 = TREE_OPERAND (op0, 0);
9508 tree o21 = TREE_OPERAND (op0, 1);
9509 {
9510/* #line 2285 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9511 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9512 tree res = generic_simplify_103 (loc, type, op0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
9513 if (res) return res;
9514 }
9515 break;
9516 }
9517 default:;
9518 }
9519 return NULL_TREE;
9520}
9521
9522static tree
9523generic_simplify_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
9524{
9525 switch (TREE_CODE (op0))
9526 {
9527 case MIN_EXPR:
9528 {
9529 tree o20 = TREE_OPERAND (op0, 0);
9530 tree o21 = TREE_OPERAND (op0, 1);
9531 switch (TREE_CODE (o20))
9532 {
9533 CASE_CONVERT:
9534 {
9535 tree o30 = TREE_OPERAND (o20, 0);
9536 switch (TREE_CODE (o21))
9537 {
9538 case INTEGER_CST:
9539 {
9540 {
9541/* #line 1412 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9542 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
9543 tree res = generic_simplify_79 (loc, type, op0, captures, MIN_EXPR);
9544 if (res) return res;
9545 }
9546 break;
9547 }
9548 default:;
9549 }
9550 break;
9551 }
9552 default:;
9553 }
9554 break;
9555 }
9556 case MAX_EXPR:
9557 {
9558 tree o20 = TREE_OPERAND (op0, 0);
9559 tree o21 = TREE_OPERAND (op0, 1);
9560 switch (TREE_CODE (o20))
9561 {
9562 CASE_CONVERT:
9563 {
9564 tree o30 = TREE_OPERAND (o20, 0);
9565 switch (TREE_CODE (o21))
9566 {
9567 case INTEGER_CST:
9568 {
9569 {
9570/* #line 1412 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9571 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
9572 tree res = generic_simplify_79 (loc, type, op0, captures, MAX_EXPR);
9573 if (res) return res;
9574 }
9575 break;
9576 }
9577 default:;
9578 }
9579 break;
9580 }
9581 default:;
9582 }
9583 break;
9584 }
9585 default:;
9586 }
9587 {
9588/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9589 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
9590/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9591 if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
9592 {
9593 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__);
9594 tree res;
9595 res = captures[0];
9596 return res;
9597 }
9598 }
9599 switch (TREE_CODE (op0))
9600 {
9601 CASE_CONVERT:
9602 {
9603 tree o20 = TREE_OPERAND (op0, 0);
9604 {
9605/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9606 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
9607 {
9608/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9609 tree inside_type = TREE_TYPE (captures[1]);
9610 tree inter_type = TREE_TYPE (captures[0]);
9611 int inside_int = INTEGRAL_TYPE_P (inside_type);
9612 int inside_ptr = POINTER_TYPE_P (inside_type);
9613 int inside_float = FLOAT_TYPE_P (inside_type);
9614 int inside_vec = VECTOR_TYPE_P (inside_type);
9615 unsigned int inside_prec = TYPE_PRECISION (inside_type);
9616 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
9617 int inter_int = INTEGRAL_TYPE_P (inter_type);
9618 int inter_ptr = POINTER_TYPE_P (inter_type);
9619 int inter_float = FLOAT_TYPE_P (inter_type);
9620 int inter_vec = VECTOR_TYPE_P (inter_type);
9621 unsigned int inter_prec = TYPE_PRECISION (inter_type);
9622 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
9623 int final_int = INTEGRAL_TYPE_P (type);
9624 int final_ptr = POINTER_TYPE_P (type);
9625 int final_float = FLOAT_TYPE_P (type);
9626 int final_vec = VECTOR_TYPE_P (type);
9627 unsigned int final_prec = TYPE_PRECISION (type);
9628 int final_unsignedp = TYPE_UNSIGNED (type);
9629/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9630 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
9631 {
9632 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
9633 tree res_op0;
9634 res_op0 = captures[1];
9635 tree res;
9636 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9637 return res;
9638 }
9639 else
9640 {
9641/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9642 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
9643 {
9644 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
9645 tree res_op0;
9646 res_op0 = captures[1];
9647 tree res;
9648 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9649 return res;
9650 }
9651 else
9652 {
9653/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9654 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
9655 {
9656 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
9657 tree res_op0;
9658 res_op0 = captures[1];
9659 tree res;
9660 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9661 return res;
9662 }
9663 else
9664 {
9665/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9666 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
9667 {
9668 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
9669 tree res_op0;
9670 res_op0 = captures[1];
9671 tree res;
9672 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9673 return res;
9674 }
9675 else
9676 {
9677/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9678 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
9679 {
9680 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
9681 tree res_op0;
9682 {
9683 tree ops1[2], res;
9684 ops1[0] = captures[1];
9685 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
9686 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
9687 res_op0 = res;
9688 }
9689 tree res;
9690 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9691 return res;
9692 }
9693 else
9694 {
9695/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9696 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
9697 {
9698 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
9699 tree res_op0;
9700 res_op0 = captures[1];
9701 tree res;
9702 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9703 return res;
9704 }
9705 }
9706 }
9707 }
9708 }
9709 }
9710 }
9711 }
9712 break;
9713 }
9714 case FLOAT_EXPR:
9715 {
9716 tree o20 = TREE_OPERAND (op0, 0);
9717 {
9718/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9719 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
9720 {
9721/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9722 tree inside_type = TREE_TYPE (captures[1]);
9723 tree inter_type = TREE_TYPE (captures[0]);
9724 int inside_int = INTEGRAL_TYPE_P (inside_type);
9725 int inside_ptr = POINTER_TYPE_P (inside_type);
9726 int inside_float = FLOAT_TYPE_P (inside_type);
9727 int inside_vec = VECTOR_TYPE_P (inside_type);
9728 unsigned int inside_prec = TYPE_PRECISION (inside_type);
9729 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
9730 int inter_int = INTEGRAL_TYPE_P (inter_type);
9731 int inter_ptr = POINTER_TYPE_P (inter_type);
9732 int inter_float = FLOAT_TYPE_P (inter_type);
9733 int inter_vec = VECTOR_TYPE_P (inter_type);
9734 unsigned int inter_prec = TYPE_PRECISION (inter_type);
9735 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
9736 int final_int = INTEGRAL_TYPE_P (type);
9737 int final_ptr = POINTER_TYPE_P (type);
9738 int final_float = FLOAT_TYPE_P (type);
9739 int final_vec = VECTOR_TYPE_P (type);
9740 unsigned int final_prec = TYPE_PRECISION (type);
9741 int final_unsignedp = TYPE_UNSIGNED (type);
9742/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9743 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
9744 {
9745 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
9746 tree res_op0;
9747 res_op0 = captures[1];
9748 tree res;
9749 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9750 return res;
9751 }
9752 else
9753 {
9754/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9755 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
9756 {
9757 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
9758 tree res_op0;
9759 res_op0 = captures[1];
9760 tree res;
9761 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9762 return res;
9763 }
9764 else
9765 {
9766/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9767 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
9768 {
9769 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
9770 tree res_op0;
9771 res_op0 = captures[1];
9772 tree res;
9773 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9774 return res;
9775 }
9776 else
9777 {
9778/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9779 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
9780 {
9781 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
9782 tree res_op0;
9783 res_op0 = captures[1];
9784 tree res;
9785 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9786 return res;
9787 }
9788 else
9789 {
9790/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9791 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
9792 {
9793 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
9794 tree res_op0;
9795 {
9796 tree ops1[2], res;
9797 ops1[0] = captures[1];
9798 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
9799 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
9800 res_op0 = res;
9801 }
9802 tree res;
9803 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9804 return res;
9805 }
9806 else
9807 {
9808/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9809 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
9810 {
9811 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
9812 tree res_op0;
9813 res_op0 = captures[1];
9814 tree res;
9815 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9816 return res;
9817 }
9818 }
9819 }
9820 }
9821 }
9822 }
9823 }
9824 }
9825 break;
9826 }
9827 case BIT_AND_EXPR:
9828 {
9829 tree o20 = TREE_OPERAND (op0, 0);
9830 tree o21 = TREE_OPERAND (op0, 1);
9831 switch (TREE_CODE (o21))
9832 {
9833 case INTEGER_CST:
9834 {
9835 {
9836/* #line 1876 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9837 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
9838/* #line 1876 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9839 if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])) && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]), TYPE_PRECISION (type)), 0))
9840 {
9841 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1881, %s:%d\n", __FILE__, __LINE__);
9842 tree res_op0;
9843 res_op0 = captures[0];
9844 tree res;
9845 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9846 if (TREE_SIDE_EFFECTS (captures[1]))
9847 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
9848 return res;
9849 }
9850 }
9851 break;
9852 }
9853 default:;
9854 }
9855 break;
9856 }
9857 case PLUS_EXPR:
9858 {
9859 tree o20 = TREE_OPERAND (op0, 0);
9860 tree o21 = TREE_OPERAND (op0, 1);
9861 switch (TREE_CODE (o20))
9862 {
9863 CASE_CONVERT:
9864 {
9865 tree o30 = TREE_OPERAND (o20, 0);
9866 switch (TREE_CODE (o21))
9867 {
9868 CASE_CONVERT:
9869 {
9870 tree o50 = TREE_OPERAND (o21, 0);
9871 {
9872/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9873 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
9874 tree res = generic_simplify_180 (loc, type, op0, captures, PLUS_EXPR);
9875 if (res) return res;
9876 }
9877 break;
9878 }
9879 default:;
9880 }
9881 {
9882/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9883 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
9884 tree res = generic_simplify_183 (loc, type, op0, captures, PLUS_EXPR);
9885 if (res) return res;
9886 }
9887 break;
9888 }
9889 default:;
9890 }
9891 break;
9892 }
9893 case MINUS_EXPR:
9894 {
9895 tree o20 = TREE_OPERAND (op0, 0);
9896 tree o21 = TREE_OPERAND (op0, 1);
9897 switch (TREE_CODE (o20))
9898 {
9899 CASE_CONVERT:
9900 {
9901 tree o30 = TREE_OPERAND (o20, 0);
9902 switch (TREE_CODE (o21))
9903 {
9904 CASE_CONVERT:
9905 {
9906 tree o50 = TREE_OPERAND (o21, 0);
9907 {
9908/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9909 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
9910 tree res = generic_simplify_180 (loc, type, op0, captures, MINUS_EXPR);
9911 if (res) return res;
9912 }
9913 break;
9914 }
9915 default:;
9916 }
9917 {
9918/* #line 3617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9919 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
9920 tree res = generic_simplify_183 (loc, type, op0, captures, MINUS_EXPR);
9921 if (res) return res;
9922 }
9923 break;
9924 }
9925 default:;
9926 }
9927 break;
9928 }
9929 default:;
9930 }
9931 return NULL_TREE;
9932}
9933
9934static tree
9935generic_simplify_VIEW_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
9936{
9937 {
9938/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9939 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
9940/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9941 if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
9942 {
9943 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__);
9944 tree res;
9945 res = captures[0];
9946 return res;
9947 }
9948 }
9949 switch (TREE_CODE (op0))
9950 {
9951 case VIEW_CONVERT_EXPR:
9952 {
9953 tree o20 = TREE_OPERAND (op0, 0);
9954 {
9955/* #line 1736 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9956 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
9957 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1736, %s:%d\n", __FILE__, __LINE__);
9958 tree res_op0;
9959 res_op0 = captures[0];
9960 tree res;
9961 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
9962 return res;
9963 }
9964 break;
9965 }
9966 default:;
9967 }
9968 {
9969/* #line 1742 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9970 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
9971/* #line 1742 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9972 if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type)) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0])))
9973 {
9974 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1745, %s:%d\n", __FILE__, __LINE__);
9975 tree res_op0;
9976 res_op0 = captures[0];
9977 tree res;
9978 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
9979 return res;
9980 }
9981 }
9982 switch (TREE_CODE (op0))
9983 {
9984 CASE_CONVERT:
9985 {
9986 tree o20 = TREE_OPERAND (op0, 0);
9987 {
9988/* #line 1750 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9989 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
9990/* #line 1750 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
9991 if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1]))) && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))) && (TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1]))))
9992 {
9993 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1754, %s:%d\n", __FILE__, __LINE__);
9994 tree res_op0;
9995 res_op0 = captures[1];
9996 tree res;
9997 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
9998 return res;
9999 }
10000 }
10001 break;
10002 }
10003 default:;
10004 }
10005 return NULL_TREE;
10006}
10007
10008static tree
10009generic_simplify_FLOAT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
10010{
10011 {
10012/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10013 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
10014/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10015 if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
10016 {
10017 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__);
10018 tree res;
10019 res = captures[0];
10020 return res;
10021 }
10022 }
10023 switch (TREE_CODE (op0))
10024 {
10025 CASE_CONVERT:
10026 {
10027 tree o20 = TREE_OPERAND (op0, 0);
10028 {
10029/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10030 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
10031 {
10032/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10033 tree inside_type = TREE_TYPE (captures[1]);
10034 tree inter_type = TREE_TYPE (captures[0]);
10035 int inside_int = INTEGRAL_TYPE_P (inside_type);
10036 int inside_ptr = POINTER_TYPE_P (inside_type);
10037 int inside_float = FLOAT_TYPE_P (inside_type);
10038 int inside_vec = VECTOR_TYPE_P (inside_type);
10039 unsigned int inside_prec = TYPE_PRECISION (inside_type);
10040 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
10041 int inter_int = INTEGRAL_TYPE_P (inter_type);
10042 int inter_ptr = POINTER_TYPE_P (inter_type);
10043 int inter_float = FLOAT_TYPE_P (inter_type);
10044 int inter_vec = VECTOR_TYPE_P (inter_type);
10045 unsigned int inter_prec = TYPE_PRECISION (inter_type);
10046 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
10047 int final_int = INTEGRAL_TYPE_P (type);
10048 int final_ptr = POINTER_TYPE_P (type);
10049 int final_float = FLOAT_TYPE_P (type);
10050 int final_vec = VECTOR_TYPE_P (type);
10051 unsigned int final_prec = TYPE_PRECISION (type);
10052 int final_unsignedp = TYPE_UNSIGNED (type);
10053/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10054 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
10055 {
10056 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
10057 tree res_op0;
10058 res_op0 = captures[1];
10059 tree res;
10060 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10061 return res;
10062 }
10063 else
10064 {
10065/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10066 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
10067 {
10068 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
10069 tree res_op0;
10070 res_op0 = captures[1];
10071 tree res;
10072 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10073 return res;
10074 }
10075 else
10076 {
10077/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10078 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
10079 {
10080 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
10081 tree res_op0;
10082 res_op0 = captures[1];
10083 tree res;
10084 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10085 return res;
10086 }
10087 else
10088 {
10089/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10090 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
10091 {
10092 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
10093 tree res_op0;
10094 res_op0 = captures[1];
10095 tree res;
10096 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10097 return res;
10098 }
10099 else
10100 {
10101/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10102 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
10103 {
10104 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
10105 tree res_op0;
10106 {
10107 tree ops1[2], res;
10108 ops1[0] = captures[1];
10109 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
10110 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10111 res_op0 = res;
10112 }
10113 tree res;
10114 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10115 return res;
10116 }
10117 else
10118 {
10119/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10120 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
10121 {
10122 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
10123 tree res_op0;
10124 res_op0 = captures[1];
10125 tree res;
10126 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10127 return res;
10128 }
10129 }
10130 }
10131 }
10132 }
10133 }
10134 }
10135 }
10136 break;
10137 }
10138 case FLOAT_EXPR:
10139 {
10140 tree o20 = TREE_OPERAND (op0, 0);
10141 {
10142/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10143 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
10144 {
10145/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10146 tree inside_type = TREE_TYPE (captures[1]);
10147 tree inter_type = TREE_TYPE (captures[0]);
10148 int inside_int = INTEGRAL_TYPE_P (inside_type);
10149 int inside_ptr = POINTER_TYPE_P (inside_type);
10150 int inside_float = FLOAT_TYPE_P (inside_type);
10151 int inside_vec = VECTOR_TYPE_P (inside_type);
10152 unsigned int inside_prec = TYPE_PRECISION (inside_type);
10153 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
10154 int inter_int = INTEGRAL_TYPE_P (inter_type);
10155 int inter_ptr = POINTER_TYPE_P (inter_type);
10156 int inter_float = FLOAT_TYPE_P (inter_type);
10157 int inter_vec = VECTOR_TYPE_P (inter_type);
10158 unsigned int inter_prec = TYPE_PRECISION (inter_type);
10159 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
10160 int final_int = INTEGRAL_TYPE_P (type);
10161 int final_ptr = POINTER_TYPE_P (type);
10162 int final_float = FLOAT_TYPE_P (type);
10163 int final_vec = VECTOR_TYPE_P (type);
10164 unsigned int final_prec = TYPE_PRECISION (type);
10165 int final_unsignedp = TYPE_UNSIGNED (type);
10166/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10167 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
10168 {
10169 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
10170 tree res_op0;
10171 res_op0 = captures[1];
10172 tree res;
10173 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10174 return res;
10175 }
10176 else
10177 {
10178/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10179 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
10180 {
10181 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
10182 tree res_op0;
10183 res_op0 = captures[1];
10184 tree res;
10185 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10186 return res;
10187 }
10188 else
10189 {
10190/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10191 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
10192 {
10193 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
10194 tree res_op0;
10195 res_op0 = captures[1];
10196 tree res;
10197 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10198 return res;
10199 }
10200 else
10201 {
10202/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10203 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
10204 {
10205 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
10206 tree res_op0;
10207 res_op0 = captures[1];
10208 tree res;
10209 res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
10210 return res;
10211 }
10212 else
10213 {
10214/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10215 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
10216 {
10217 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
10218 tree res_op0;
10219 {
10220 tree ops1[2], res;
10221 ops1[0] = captures[1];
10222 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
10223 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10224 res_op0 = res;
10225 }
10226 tree res;
10227 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10228 return res;
10229 }
10230 else
10231 {
10232/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10233 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
10234 {
10235 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
10236 tree res_op0;
10237 res_op0 = captures[1];
10238 tree res;
10239 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10240 return res;
10241 }
10242 }
10243 }
10244 }
10245 }
10246 }
10247 }
10248 }
10249 break;
10250 }
10251 default:;
10252 }
10253 return NULL_TREE;
10254}
10255
10256static tree
10257generic_simplify_FIX_TRUNC_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
10258{
10259 {
10260/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10261 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
10262/* #line 1729 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10263 if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
10264 {
10265 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__);
10266 tree res;
10267 res = captures[0];
10268 return res;
10269 }
10270 }
10271 switch (TREE_CODE (op0))
10272 {
10273 CASE_CONVERT:
10274 {
10275 tree o20 = TREE_OPERAND (op0, 0);
10276 {
10277/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10278 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
10279 {
10280/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10281 tree inside_type = TREE_TYPE (captures[1]);
10282 tree inter_type = TREE_TYPE (captures[0]);
10283 int inside_int = INTEGRAL_TYPE_P (inside_type);
10284 int inside_ptr = POINTER_TYPE_P (inside_type);
10285 int inside_float = FLOAT_TYPE_P (inside_type);
10286 int inside_vec = VECTOR_TYPE_P (inside_type);
10287 unsigned int inside_prec = TYPE_PRECISION (inside_type);
10288 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
10289 int inter_int = INTEGRAL_TYPE_P (inter_type);
10290 int inter_ptr = POINTER_TYPE_P (inter_type);
10291 int inter_float = FLOAT_TYPE_P (inter_type);
10292 int inter_vec = VECTOR_TYPE_P (inter_type);
10293 unsigned int inter_prec = TYPE_PRECISION (inter_type);
10294 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
10295 int final_int = INTEGRAL_TYPE_P (type);
10296 int final_ptr = POINTER_TYPE_P (type);
10297 int final_float = FLOAT_TYPE_P (type);
10298 int final_vec = VECTOR_TYPE_P (type);
10299 unsigned int final_prec = TYPE_PRECISION (type);
10300 int final_unsignedp = TYPE_UNSIGNED (type);
10301/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10302 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
10303 {
10304 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
10305 tree res_op0;
10306 res_op0 = captures[1];
10307 tree res;
10308 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10309 return res;
10310 }
10311 else
10312 {
10313/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10314 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
10315 {
10316 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
10317 tree res_op0;
10318 res_op0 = captures[1];
10319 tree res;
10320 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10321 return res;
10322 }
10323 else
10324 {
10325/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10326 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
10327 {
10328 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
10329 tree res_op0;
10330 res_op0 = captures[1];
10331 tree res;
10332 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10333 return res;
10334 }
10335 else
10336 {
10337/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10338 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
10339 {
10340 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
10341 tree res_op0;
10342 res_op0 = captures[1];
10343 tree res;
10344 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10345 return res;
10346 }
10347 else
10348 {
10349/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10350 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
10351 {
10352 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
10353 tree res_op0;
10354 {
10355 tree ops1[2], res;
10356 ops1[0] = captures[1];
10357 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
10358 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10359 res_op0 = res;
10360 }
10361 tree res;
10362 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10363 return res;
10364 }
10365 else
10366 {
10367/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10368 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
10369 {
10370 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
10371 tree res_op0;
10372 res_op0 = captures[1];
10373 tree res;
10374 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10375 return res;
10376 }
10377 }
10378 }
10379 }
10380 }
10381 }
10382 }
10383 }
10384 break;
10385 }
10386 case FLOAT_EXPR:
10387 {
10388 tree o20 = TREE_OPERAND (op0, 0);
10389 {
10390/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10391 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
10392 {
10393/* #line 1770 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10394 tree inside_type = TREE_TYPE (captures[1]);
10395 tree inter_type = TREE_TYPE (captures[0]);
10396 int inside_int = INTEGRAL_TYPE_P (inside_type);
10397 int inside_ptr = POINTER_TYPE_P (inside_type);
10398 int inside_float = FLOAT_TYPE_P (inside_type);
10399 int inside_vec = VECTOR_TYPE_P (inside_type);
10400 unsigned int inside_prec = TYPE_PRECISION (inside_type);
10401 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
10402 int inter_int = INTEGRAL_TYPE_P (inter_type);
10403 int inter_ptr = POINTER_TYPE_P (inter_type);
10404 int inter_float = FLOAT_TYPE_P (inter_type);
10405 int inter_vec = VECTOR_TYPE_P (inter_type);
10406 unsigned int inter_prec = TYPE_PRECISION (inter_type);
10407 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
10408 int final_int = INTEGRAL_TYPE_P (type);
10409 int final_ptr = POINTER_TYPE_P (type);
10410 int final_float = FLOAT_TYPE_P (type);
10411 int final_vec = VECTOR_TYPE_P (type);
10412 unsigned int final_prec = TYPE_PRECISION (type);
10413 int final_unsignedp = TYPE_UNSIGNED (type);
10414/* #line 1798 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10415 if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
10416 {
10417 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1804, %s:%d\n", __FILE__, __LINE__);
10418 tree res_op0;
10419 res_op0 = captures[1];
10420 tree res;
10421 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10422 return res;
10423 }
10424 else
10425 {
10426/* #line 1811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10427 if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
10428 {
10429 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1815, %s:%d\n", __FILE__, __LINE__);
10430 tree res_op0;
10431 res_op0 = captures[1];
10432 tree res;
10433 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10434 return res;
10435 }
10436 else
10437 {
10438/* #line 1821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10439 if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
10440 {
10441 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1825, %s:%d\n", __FILE__, __LINE__);
10442 tree res_op0;
10443 res_op0 = captures[1];
10444 tree res;
10445 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10446 return res;
10447 }
10448 else
10449 {
10450/* #line 1838 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10451 if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
10452 {
10453 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1848, %s:%d\n", __FILE__, __LINE__);
10454 tree res_op0;
10455 res_op0 = captures[1];
10456 tree res;
10457 res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
10458 return res;
10459 }
10460 else
10461 {
10462/* #line 1852 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10463 if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
10464 {
10465 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1857, %s:%d\n", __FILE__, __LINE__);
10466 tree res_op0;
10467 {
10468 tree ops1[2], res;
10469 ops1[0] = captures[1];
10470 ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
10471 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10472 res_op0 = res;
10473 }
10474 tree res;
10475 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10476 return res;
10477 }
10478 else
10479 {
10480/* #line 1865 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10481 if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
10482 {
10483 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1869, %s:%d\n", __FILE__, __LINE__);
10484 tree res_op0;
10485 res_op0 = captures[1];
10486 tree res;
10487 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10488 return res;
10489 }
10490 }
10491 }
10492 }
10493 }
10494 }
10495 }
10496 }
10497 break;
10498 }
10499 default:;
10500 }
10501 return NULL_TREE;
10502}
10503
10504static tree
10505generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
10506{
10507 switch (TREE_CODE (op0))
10508 {
10509 case PAREN_EXPR:
10510 {
10511 tree o20 = TREE_OPERAND (op0, 0);
10512 {
10513/* #line 1763 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10514 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
10515 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
10516 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1763, %s:%d\n", __FILE__, __LINE__);
10517 tree res;
10518 res = captures[0];
10519 return res;
10520 }
10521 break;
10522 }
10523 default:;
10524 }
10525if (CONSTANT_CLASS_P (op0))
10526 {
10527 {
10528/* #line 1760 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10529 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
10530 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1760, %s:%d\n", __FILE__, __LINE__);
10531 tree res;
10532 res = captures[0];
10533 return res;
10534 }
10535 }
10536 return NULL_TREE;
10537}
10538
10539static tree
10540generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
10541{
10542 switch (TREE_CODE (op0))
10543 {
10544 case COMPLEX_EXPR:
10545 {
10546 tree o20 = TREE_OPERAND (op0, 0);
10547 tree o21 = TREE_OPERAND (op0, 1);
10548 {
10549/* #line 1935 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10550 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
10551 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1935, %s:%d\n", __FILE__, __LINE__);
10552 tree res;
10553 res = captures[0];
10554 if (TREE_SIDE_EFFECTS (captures[1]))
10555 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
10556 return res;
10557 }
10558 break;
10559 }
10560 CASE_CONVERT:
10561 {
10562 tree o20 = TREE_OPERAND (op0, 0);
10563 switch (TREE_CODE (o20))
10564 {
10565 case CONJ_EXPR:
10566 {
10567 tree o30 = TREE_OPERAND (o20, 0);
10568 {
10569/* #line 1943 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10570 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
10571 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1943, %s:%d\n", __FILE__, __LINE__);
10572 tree res_op0;
10573 {
10574 tree ops1[1], res;
10575 ops1[0] = captures[2];
10576 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
10577 res_op0 = res;
10578 }
10579 tree res;
10580 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10581 return res;
10582 }
10583 break;
10584 }
10585 case PLUS_EXPR:
10586 {
10587 tree o30 = TREE_OPERAND (o20, 0);
10588 tree o31 = TREE_OPERAND (o20, 1);
10589 {
10590/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10591 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
10592 enum tree_code op = PLUS_EXPR;
10593 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10594 tree res_op0;
10595 {
10596 tree ops1[2], res;
10597 {
10598 tree ops2[1], res;
10599 ops2[0] = captures[2];
10600 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10601 ops1[0] = res;
10602 }
10603 {
10604 tree ops2[1], res;
10605 ops2[0] = captures[3];
10606 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10607 ops1[1] = res;
10608 }
10609 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10610 res_op0 = res;
10611 }
10612 tree res;
10613 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10614 return res;
10615 }
10616 break;
10617 }
10618 case MINUS_EXPR:
10619 {
10620 tree o30 = TREE_OPERAND (o20, 0);
10621 tree o31 = TREE_OPERAND (o20, 1);
10622 {
10623/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10624 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
10625 enum tree_code op = MINUS_EXPR;
10626 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10627 tree res_op0;
10628 {
10629 tree ops1[2], res;
10630 {
10631 tree ops2[1], res;
10632 ops2[0] = captures[2];
10633 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10634 ops1[0] = res;
10635 }
10636 {
10637 tree ops2[1], res;
10638 ops2[0] = captures[3];
10639 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10640 ops1[1] = res;
10641 }
10642 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10643 res_op0 = res;
10644 }
10645 tree res;
10646 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10647 return res;
10648 }
10649 break;
10650 }
10651 case CALL_EXPR:
10652 switch (get_call_combined_fn (o20))
10653 {
10654 case CFN_BUILT_IN_CEXPIF:
10655 {
10656 tree o30 = CALL_EXPR_ARG (o20, 0);
10657 {
10658/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10659 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
10660 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10661 tree res_op0;
10662 {
10663 tree ops1[1], res;
10664 ops1[0] = captures[2];
10665 {
10666 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), 1, ops1[0]);
10667 if (!res)
10668 return NULL_TREE;
10669 }
10670 res_op0 = res;
10671 }
10672 tree res;
10673 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10674 return res;
10675 }
10676 break;
10677 }
10678 case CFN_BUILT_IN_CEXPI:
10679 {
10680 tree o30 = CALL_EXPR_ARG (o20, 0);
10681 {
10682/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10683 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
10684 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10685 tree res_op0;
10686 {
10687 tree ops1[1], res;
10688 ops1[0] = captures[2];
10689 {
10690 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
10691 if (!res)
10692 return NULL_TREE;
10693 }
10694 res_op0 = res;
10695 }
10696 tree res;
10697 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10698 return res;
10699 }
10700 break;
10701 }
10702 case CFN_BUILT_IN_CEXPIL:
10703 {
10704 tree o30 = CALL_EXPR_ARG (o20, 0);
10705 {
10706/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10707 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
10708 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10709 tree res_op0;
10710 {
10711 tree ops1[1], res;
10712 ops1[0] = captures[2];
10713 {
10714 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), 1, ops1[0]);
10715 if (!res)
10716 return NULL_TREE;
10717 }
10718 res_op0 = res;
10719 }
10720 tree res;
10721 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10722 return res;
10723 }
10724 break;
10725 }
10726 default:;
10727 }
10728 break;
10729 default:;
10730 }
10731 break;
10732 }
10733 case CONJ_EXPR:
10734 {
10735 tree o20 = TREE_OPERAND (op0, 0);
10736 {
10737/* #line 1943 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10738 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
10739 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1943, %s:%d\n", __FILE__, __LINE__);
10740 tree res_op0;
10741 {
10742 tree ops1[1], res;
10743 ops1[0] = captures[2];
10744 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
10745 res_op0 = res;
10746 }
10747 tree res;
10748 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10749 return res;
10750 }
10751 break;
10752 }
10753 case PLUS_EXPR:
10754 {
10755 tree o20 = TREE_OPERAND (op0, 0);
10756 tree o21 = TREE_OPERAND (op0, 1);
10757 {
10758/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10759 tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
10760 enum tree_code op = PLUS_EXPR;
10761 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10762 tree res_op0;
10763 {
10764 tree ops1[2], res;
10765 {
10766 tree ops2[1], res;
10767 ops2[0] = captures[2];
10768 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10769 ops1[0] = res;
10770 }
10771 {
10772 tree ops2[1], res;
10773 ops2[0] = captures[3];
10774 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10775 ops1[1] = res;
10776 }
10777 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10778 res_op0 = res;
10779 }
10780 tree res;
10781 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10782 return res;
10783 }
10784 break;
10785 }
10786 case MINUS_EXPR:
10787 {
10788 tree o20 = TREE_OPERAND (op0, 0);
10789 tree o21 = TREE_OPERAND (op0, 1);
10790 {
10791/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10792 tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
10793 enum tree_code op = MINUS_EXPR;
10794 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10795 tree res_op0;
10796 {
10797 tree ops1[2], res;
10798 {
10799 tree ops2[1], res;
10800 ops2[0] = captures[2];
10801 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10802 ops1[0] = res;
10803 }
10804 {
10805 tree ops2[1], res;
10806 ops2[0] = captures[3];
10807 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10808 ops1[1] = res;
10809 }
10810 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10811 res_op0 = res;
10812 }
10813 tree res;
10814 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10815 return res;
10816 }
10817 break;
10818 }
10819 case CALL_EXPR:
10820 switch (get_call_combined_fn (op0))
10821 {
10822 case CFN_BUILT_IN_CEXPIF:
10823 {
10824 tree o20 = CALL_EXPR_ARG (op0, 0);
10825 {
10826/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10827 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
10828 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10829 tree res_op0;
10830 {
10831 tree ops1[1], res;
10832 ops1[0] = captures[2];
10833 {
10834 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), 1, ops1[0]);
10835 if (!res)
10836 return NULL_TREE;
10837 }
10838 res_op0 = res;
10839 }
10840 tree res;
10841 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10842 return res;
10843 }
10844 break;
10845 }
10846 case CFN_BUILT_IN_CEXPI:
10847 {
10848 tree o20 = CALL_EXPR_ARG (op0, 0);
10849 {
10850/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10851 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
10852 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10853 tree res_op0;
10854 {
10855 tree ops1[1], res;
10856 ops1[0] = captures[2];
10857 {
10858 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
10859 if (!res)
10860 return NULL_TREE;
10861 }
10862 res_op0 = res;
10863 }
10864 tree res;
10865 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10866 return res;
10867 }
10868 break;
10869 }
10870 case CFN_BUILT_IN_CEXPIL:
10871 {
10872 tree o20 = CALL_EXPR_ARG (op0, 0);
10873 {
10874/* #line 1954 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10875 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
10876 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1954, %s:%d\n", __FILE__, __LINE__);
10877 tree res_op0;
10878 {
10879 tree ops1[1], res;
10880 ops1[0] = captures[2];
10881 {
10882 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), 1, ops1[0]);
10883 if (!res)
10884 return NULL_TREE;
10885 }
10886 res_op0 = res;
10887 }
10888 tree res;
10889 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10890 return res;
10891 }
10892 break;
10893 }
10894 default:;
10895 }
10896 break;
10897 default:;
10898 }
10899 return NULL_TREE;
10900}
10901
10902static tree
10903generic_simplify_IMAGPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
10904{
10905 switch (TREE_CODE (op0))
10906 {
10907 case COMPLEX_EXPR:
10908 {
10909 tree o20 = TREE_OPERAND (op0, 0);
10910 tree o21 = TREE_OPERAND (op0, 1);
10911 {
10912/* #line 1938 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10913 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
10914 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1938, %s:%d\n", __FILE__, __LINE__);
10915 tree res;
10916 res = captures[1];
10917 if (TREE_SIDE_EFFECTS (captures[0]))
10918 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
10919 return res;
10920 }
10921 break;
10922 }
10923 CASE_CONVERT:
10924 {
10925 tree o20 = TREE_OPERAND (op0, 0);
10926 switch (TREE_CODE (o20))
10927 {
10928 case CONJ_EXPR:
10929 {
10930 tree o30 = TREE_OPERAND (o20, 0);
10931 {
10932/* #line 1946 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10933 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
10934 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1946, %s:%d\n", __FILE__, __LINE__);
10935 tree res_op0;
10936 {
10937 tree ops1[1], res;
10938 {
10939 tree ops2[1], res;
10940 ops2[0] = captures[2];
10941 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10942 ops1[0] = res;
10943 }
10944 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
10945 res_op0 = res;
10946 }
10947 tree res;
10948 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10949 return res;
10950 }
10951 break;
10952 }
10953 case PLUS_EXPR:
10954 {
10955 tree o30 = TREE_OPERAND (o20, 0);
10956 tree o31 = TREE_OPERAND (o20, 1);
10957 {
10958/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10959 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
10960 enum tree_code op = PLUS_EXPR;
10961 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10962 tree res_op0;
10963 {
10964 tree ops1[2], res;
10965 {
10966 tree ops2[1], res;
10967 ops2[0] = captures[2];
10968 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10969 ops1[0] = res;
10970 }
10971 {
10972 tree ops2[1], res;
10973 ops2[0] = captures[3];
10974 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
10975 ops1[1] = res;
10976 }
10977 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
10978 res_op0 = res;
10979 }
10980 tree res;
10981 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
10982 return res;
10983 }
10984 break;
10985 }
10986 case MINUS_EXPR:
10987 {
10988 tree o30 = TREE_OPERAND (o20, 0);
10989 tree o31 = TREE_OPERAND (o20, 1);
10990 {
10991/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
10992 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
10993 enum tree_code op = MINUS_EXPR;
10994 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
10995 tree res_op0;
10996 {
10997 tree ops1[2], res;
10998 {
10999 tree ops2[1], res;
11000 ops2[0] = captures[2];
11001 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11002 ops1[0] = res;
11003 }
11004 {
11005 tree ops2[1], res;
11006 ops2[0] = captures[3];
11007 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11008 ops1[1] = res;
11009 }
11010 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
11011 res_op0 = res;
11012 }
11013 tree res;
11014 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11015 return res;
11016 }
11017 break;
11018 }
11019 case CALL_EXPR:
11020 switch (get_call_combined_fn (o20))
11021 {
11022 case CFN_BUILT_IN_CEXPIF:
11023 {
11024 tree o30 = CALL_EXPR_ARG (o20, 0);
11025 {
11026/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11027 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
11028 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11029 tree res_op0;
11030 {
11031 tree ops1[1], res;
11032 ops1[0] = captures[2];
11033 {
11034 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), 1, ops1[0]);
11035 if (!res)
11036 return NULL_TREE;
11037 }
11038 res_op0 = res;
11039 }
11040 tree res;
11041 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11042 return res;
11043 }
11044 break;
11045 }
11046 case CFN_BUILT_IN_CEXPI:
11047 {
11048 tree o30 = CALL_EXPR_ARG (o20, 0);
11049 {
11050/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11051 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
11052 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11053 tree res_op0;
11054 {
11055 tree ops1[1], res;
11056 ops1[0] = captures[2];
11057 {
11058 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), 1, ops1[0]);
11059 if (!res)
11060 return NULL_TREE;
11061 }
11062 res_op0 = res;
11063 }
11064 tree res;
11065 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11066 return res;
11067 }
11068 break;
11069 }
11070 case CFN_BUILT_IN_CEXPIL:
11071 {
11072 tree o30 = CALL_EXPR_ARG (o20, 0);
11073 {
11074/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11075 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
11076 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11077 tree res_op0;
11078 {
11079 tree ops1[1], res;
11080 ops1[0] = captures[2];
11081 {
11082 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), 1, ops1[0]);
11083 if (!res)
11084 return NULL_TREE;
11085 }
11086 res_op0 = res;
11087 }
11088 tree res;
11089 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11090 return res;
11091 }
11092 break;
11093 }
11094 default:;
11095 }
11096 break;
11097 default:;
11098 }
11099 break;
11100 }
11101 case CONJ_EXPR:
11102 {
11103 tree o20 = TREE_OPERAND (op0, 0);
11104 {
11105/* #line 1946 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11106 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
11107 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1946, %s:%d\n", __FILE__, __LINE__);
11108 tree res_op0;
11109 {
11110 tree ops1[1], res;
11111 {
11112 tree ops2[1], res;
11113 ops2[0] = captures[2];
11114 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11115 ops1[0] = res;
11116 }
11117 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
11118 res_op0 = res;
11119 }
11120 tree res;
11121 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11122 return res;
11123 }
11124 break;
11125 }
11126 case PLUS_EXPR:
11127 {
11128 tree o20 = TREE_OPERAND (op0, 0);
11129 tree o21 = TREE_OPERAND (op0, 1);
11130 {
11131/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11132 tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
11133 enum tree_code op = PLUS_EXPR;
11134 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
11135 tree res_op0;
11136 {
11137 tree ops1[2], res;
11138 {
11139 tree ops2[1], res;
11140 ops2[0] = captures[2];
11141 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11142 ops1[0] = res;
11143 }
11144 {
11145 tree ops2[1], res;
11146 ops2[0] = captures[3];
11147 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11148 ops1[1] = res;
11149 }
11150 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
11151 res_op0 = res;
11152 }
11153 tree res;
11154 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11155 return res;
11156 }
11157 break;
11158 }
11159 case MINUS_EXPR:
11160 {
11161 tree o20 = TREE_OPERAND (op0, 0);
11162 tree o21 = TREE_OPERAND (op0, 1);
11163 {
11164/* #line 1951 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11165 tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
11166 enum tree_code op = MINUS_EXPR;
11167 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1951, %s:%d\n", __FILE__, __LINE__);
11168 tree res_op0;
11169 {
11170 tree ops1[2], res;
11171 {
11172 tree ops2[1], res;
11173 ops2[0] = captures[2];
11174 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11175 ops1[0] = res;
11176 }
11177 {
11178 tree ops2[1], res;
11179 ops2[0] = captures[3];
11180 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
11181 ops1[1] = res;
11182 }
11183 res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
11184 res_op0 = res;
11185 }
11186 tree res;
11187 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11188 return res;
11189 }
11190 break;
11191 }
11192 case CALL_EXPR:
11193 switch (get_call_combined_fn (op0))
11194 {
11195 case CFN_BUILT_IN_CEXPIF:
11196 {
11197 tree o20 = CALL_EXPR_ARG (op0, 0);
11198 {
11199/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11200 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
11201 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11202 tree res_op0;
11203 {
11204 tree ops1[1], res;
11205 ops1[0] = captures[2];
11206 {
11207 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), 1, ops1[0]);
11208 if (!res)
11209 return NULL_TREE;
11210 }
11211 res_op0 = res;
11212 }
11213 tree res;
11214 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11215 return res;
11216 }
11217 break;
11218 }
11219 case CFN_BUILT_IN_CEXPI:
11220 {
11221 tree o20 = CALL_EXPR_ARG (op0, 0);
11222 {
11223/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11224 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
11225 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11226 tree res_op0;
11227 {
11228 tree ops1[1], res;
11229 ops1[0] = captures[2];
11230 {
11231 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), 1, ops1[0]);
11232 if (!res)
11233 return NULL_TREE;
11234 }
11235 res_op0 = res;
11236 }
11237 tree res;
11238 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11239 return res;
11240 }
11241 break;
11242 }
11243 case CFN_BUILT_IN_CEXPIL:
11244 {
11245 tree o20 = CALL_EXPR_ARG (op0, 0);
11246 {
11247/* #line 1957 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11248 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
11249 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1957, %s:%d\n", __FILE__, __LINE__);
11250 tree res_op0;
11251 {
11252 tree ops1[1], res;
11253 ops1[0] = captures[2];
11254 {
11255 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), 1, ops1[0]);
11256 if (!res)
11257 return NULL_TREE;
11258 }
11259 res_op0 = res;
11260 }
11261 tree res;
11262 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
11263 return res;
11264 }
11265 break;
11266 }
11267 default:;
11268 }
11269 break;
11270 default:;
11271 }
11272 return NULL_TREE;
11273}
11274
11275static tree
11276generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0)
11277{
11278 switch (TREE_CODE (op0))
11279 {
11280 CASE_CONVERT:
11281 {
11282 tree o20 = TREE_OPERAND (op0, 0);
11283 switch (TREE_CODE (o20))
11284 {
11285 case CONJ_EXPR:
11286 {
11287 tree o30 = TREE_OPERAND (o20, 0);
11288 {
11289/* #line 1962 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11290 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
11291 tree res = generic_simplify_193 (loc, type, op0, captures);
11292 if (res) return res;
11293 }
11294 break;
11295 }
11296 case COMPLEX_EXPR:
11297 {
11298 tree o30 = TREE_OPERAND (o20, 0);
11299 tree o31 = TREE_OPERAND (o20, 1);
11300 {
11301/* #line 1968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11302 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
11303 {
11304/* #line 1968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11305 tree itype = TREE_TYPE (type);
11306 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1969, %s:%d\n", __FILE__, __LINE__);
11307 tree res_op0;
11308 {
11309 tree ops1[1], res;
11310 ops1[0] = captures[2];
11311 if (TREE_TYPE (ops1[0]) != itype)
11312 res = fold_build1_loc (loc, NOP_EXPR, itype, ops1[0]);
11313 else
11314 res = ops1[0];
11315 res_op0 = res;
11316 }
11317 tree res_op1;
11318 {
11319 tree ops1[1], res;
11320 {
11321 tree ops2[1], res;
11322 ops2[0] = captures[3];
11323 if (TREE_TYPE (ops2[0]) != itype)
11324 res = fold_build1_loc (loc, NOP_EXPR, itype, ops2[0]);
11325 else
11326 res = ops2[0];
11327 ops1[0] = res;
11328 }
11329 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
11330 res_op1 = res;
11331 }
11332 tree res;
11333 res = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
11334 return res;
11335 }
11336 }
11337 break;
11338 }
11339 default:;
11340 }
11341 break;
11342 }
11343 case CONJ_EXPR:
11344 {
11345 tree o20 = TREE_OPERAND (op0, 0);
11346 {
11347/* #line 1962 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11348 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
11349 tree res = generic_simplify_193 (loc, type, op0, captures);
11350 if (res) return res;
11351 }
11352 break;
11353 }
11354 case COMPLEX_EXPR:
11355 {
11356 tree o20 = TREE_OPERAND (op0, 0);
11357 tree o21 = TREE_OPERAND (op0, 1);
11358 {
11359/* #line 1968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11360 tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
11361 {
11362/* #line 1968 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11363 tree itype = TREE_TYPE (type);
11364 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1969, %s:%d\n", __FILE__, __LINE__);
11365 tree res_op0;
11366 {
11367 tree ops1[1], res;
11368 ops1[0] = captures[2];
11369 if (TREE_TYPE (ops1[0]) != itype)
11370 res = fold_build1_loc (loc, NOP_EXPR, itype, ops1[0]);
11371 else
11372 res = ops1[0];
11373 res_op0 = res;
11374 }
11375 tree res_op1;
11376 {
11377 tree ops1[1], res;
11378 {
11379 tree ops2[1], res;
11380 ops2[0] = captures[3];
11381 if (TREE_TYPE (ops2[0]) != itype)
11382 res = fold_build1_loc (loc, NOP_EXPR, itype, ops2[0]);
11383 else
11384 res = ops2[0];
11385 ops1[0] = res;
11386 }
11387 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
11388 res_op1 = res;
11389 }
11390 tree res;
11391 res = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
11392 return res;
11393 }
11394 }
11395 break;
11396 }
11397 default:;
11398 }
11399 return NULL_TREE;
11400}
11401
11402tree
11403generic_simplify (location_t loc, enum tree_code code, tree type ATTRIBUTE_UNUSED, tree op0)
11404{
11405 switch (code)
11406 {
11407 case ABS_EXPR:
11408 return generic_simplify_ABS_EXPR (loc, code, type, op0);
11409 case NEGATE_EXPR:
11410 return generic_simplify_NEGATE_EXPR (loc, code, type, op0);
11411 case BIT_NOT_EXPR:
11412 return generic_simplify_BIT_NOT_EXPR (loc, code, type, op0);
11413 CASE_CONVERT:
11414 return generic_simplify_CONVERT_EXPR (loc, code, type, op0);
11415 case VIEW_CONVERT_EXPR:
11416 return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, op0);
11417 case FLOAT_EXPR:
11418 return generic_simplify_FLOAT_EXPR (loc, code, type, op0);
11419 case FIX_TRUNC_EXPR:
11420 return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, op0);
11421 case PAREN_EXPR:
11422 return generic_simplify_PAREN_EXPR (loc, code, type, op0);
11423 case REALPART_EXPR:
11424 return generic_simplify_REALPART_EXPR (loc, code, type, op0);
11425 case IMAGPART_EXPR:
11426 return generic_simplify_IMAGPART_EXPR (loc, code, type, op0);
11427 case CONJ_EXPR:
11428 return generic_simplify_CONJ_EXPR (loc, code, type, op0);
11429 default:;
11430 }
11431 return NULL_TREE;
11432}
11433
11434static tree
11435generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
11436{
11437 if (integer_zerop (op1))
11438 {
11439 {
11440/* #line 84 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11441 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
11442 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
11443 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__);
11444 tree res_op0;
11445 res_op0 = captures[0];
11446 tree res;
11447 res = non_lvalue_loc (loc, res_op0);
11448 return res;
11449 }
11450 }
11451 if (real_zerop (op1))
11452 {
11453 {
11454/* #line 95 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11455 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
11456 tree res = generic_simplify_159 (loc, type, op0, op1, captures);
11457 if (res) return res;
11458 }
11459 }
11460 switch (TREE_CODE (op0))
11461 {
11462 CASE_CONVERT:
11463 {
11464 tree o20 = TREE_OPERAND (op0, 0);
11465 switch (TREE_CODE (op1))
11466 {
11467 CASE_CONVERT:
11468 {
11469 tree o40 = TREE_OPERAND (op1, 0);
11470 switch (TREE_CODE (o40))
11471 {
11472 case BIT_NOT_EXPR:
11473 {
11474 tree o50 = TREE_OPERAND (o40, 0);
11475 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
11476 {
11477 {
11478/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11479 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
11480 tree res = generic_simplify_133 (loc, type, op0, op1, captures, PLUS_EXPR);
11481 if (res) return res;
11482 }
11483 }
11484 break;
11485 }
11486 default:;
11487 }
11488 break;
11489 }
11490 default:;
11491 }
11492 switch (TREE_CODE (o20))
11493 {
11494 case BIT_NOT_EXPR:
11495 {
11496 tree o30 = TREE_OPERAND (o20, 0);
11497 switch (TREE_CODE (op1))
11498 {
11499 CASE_CONVERT:
11500 {
11501 tree o50 = TREE_OPERAND (op1, 0);
11502 if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
11503 {
11504 {
11505/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11506 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
11507 tree res = generic_simplify_133 (loc, type, op0, op1, captures, PLUS_EXPR);
11508 if (res) return res;
11509 }
11510 }
11511 break;
11512 }
11513 default:;
11514 }
11515 break;
11516 }
11517 default:;
11518 }
11519 break;
11520 }
11521 default:;
11522 }
11523if (real_zerop (op0))
11524 {
11525 {
11526/* #line 95 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11527 tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
11528 tree res = generic_simplify_159 (loc, type, op0, op1, captures);
11529 if (res) return res;
11530 }
11531 }
11532 switch (TREE_CODE (op1))
11533 {
11534 case BIT_NOT_EXPR:
11535 {
11536 tree o30 = TREE_OPERAND (op1, 0);
11537 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
11538 {
11539 {
11540/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11541 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
11542 tree res = generic_simplify_133 (loc, type, op0, op1, captures, PLUS_EXPR);
11543 if (res) return res;
11544 }
11545 }
11546 break;
11547 }
11548 default:;
11549 }
11550 switch (TREE_CODE (op0))
11551 {
11552 case BIT_NOT_EXPR:
11553 {
11554 tree o20 = TREE_OPERAND (op0, 0);
11555 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
11556 {
11557 {
11558/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11559 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
11560 tree res = generic_simplify_133 (loc, type, op0, op1, captures, PLUS_EXPR);
11561 if (res) return res;
11562 }
11563 }
11564 break;
11565 }
11566 default:;
11567 }
11568 switch (TREE_CODE (op1))
11569 {
11570 case BIT_AND_EXPR:
11571 {
11572 tree o30 = TREE_OPERAND (op1, 0);
11573 tree o31 = TREE_OPERAND (op1, 1);
11574 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
11575 {
11576 if (integer_onep (o31))
11577 {
11578 {
11579/* #line 659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11580 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
11581 tree res = generic_simplify_60 (loc, type, op0, op1, captures);
11582 if (res) return res;
11583 }
11584 }
11585 }
11586 break;
11587 }
11588 default:;
11589 }
11590 switch (TREE_CODE (op0))
11591 {
11592 case BIT_AND_EXPR:
11593 {
11594 tree o20 = TREE_OPERAND (op0, 0);
11595 tree o21 = TREE_OPERAND (op0, 1);
11596 if (integer_onep (o21))
11597 {
11598 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
11599 {
11600 {
11601/* #line 659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11602 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
11603 tree res = generic_simplify_60 (loc, type, op0, op1, captures);
11604 if (res) return res;
11605 }
11606 }
11607 }
11608 switch (TREE_CODE (op1))
11609 {
11610 case BIT_XOR_EXPR:
11611 {
11612 tree o50 = TREE_OPERAND (op1, 0);
11613 tree o51 = TREE_OPERAND (op1, 1);
11614 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
11615 {
11616 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
11617 {
11618 {
11619/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11620 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
11621 tree res = generic_simplify_68 (loc, type, op0, op1, captures, PLUS_EXPR);
11622 if (res) return res;
11623 }
11624 }
11625 }
11626 break;
11627 }
11628 case BIT_IOR_EXPR:
11629 {
11630 tree o50 = TREE_OPERAND (op1, 0);
11631 tree o51 = TREE_OPERAND (op1, 1);
11632 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
11633 {
11634 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
11635 {
11636 {
11637/* #line 697 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11638 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
11639 tree res = generic_simplify_152 (loc, type, op0, op1, captures);
11640 if (res) return res;
11641 }
11642 }
11643 }
11644 break;
11645 }
11646 default:;
11647 }
11648 switch (TREE_CODE (o21))
11649 {
11650 case INTEGER_CST:
11651 {
11652 switch (TREE_CODE (op1))
11653 {
11654 CASE_CONVERT:
11655 {
11656 tree o50 = TREE_OPERAND (op1, 0);
11657 switch (TREE_CODE (o50))
11658 {
11659 case BIT_AND_EXPR:
11660 {
11661 tree o60 = TREE_OPERAND (o50, 0);
11662 tree o61 = TREE_OPERAND (o50, 1);
11663 switch (TREE_CODE (o61))
11664 {
11665 case INTEGER_CST:
11666 {
11667 {
11668/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11669 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
11670 tree res = generic_simplify_188 (loc, type, op0, op1, captures, PLUS_EXPR);
11671 if (res) return res;
11672 }
11673 break;
11674 }
11675 default:;
11676 }
11677 break;
11678 }
11679 default:;
11680 }
11681 break;
11682 }
11683 case BIT_AND_EXPR:
11684 {
11685 tree o50 = TREE_OPERAND (op1, 0);
11686 tree o51 = TREE_OPERAND (op1, 1);
11687 switch (TREE_CODE (o51))
11688 {
11689 case INTEGER_CST:
11690 {
11691 {
11692/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11693 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
11694 tree res = generic_simplify_188 (loc, type, op0, op1, captures, PLUS_EXPR);
11695 if (res) return res;
11696 }
11697 break;
11698 }
11699 default:;
11700 }
11701 break;
11702 }
11703 default:;
11704 }
11705 break;
11706 }
11707 default:;
11708 }
11709 break;
11710 }
11711 case BIT_XOR_EXPR:
11712 {
11713 tree o20 = TREE_OPERAND (op0, 0);
11714 tree o21 = TREE_OPERAND (op0, 1);
11715 switch (TREE_CODE (op1))
11716 {
11717 case BIT_AND_EXPR:
11718 {
11719 tree o50 = TREE_OPERAND (op1, 0);
11720 tree o51 = TREE_OPERAND (op1, 1);
11721 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
11722 {
11723 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
11724 {
11725 {
11726/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11727 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
11728 tree res = generic_simplify_68 (loc, type, op0, op1, captures, PLUS_EXPR);
11729 if (res) return res;
11730 }
11731 }
11732 }
11733 break;
11734 }
11735 default:;
11736 }
11737 break;
11738 }
11739 case BIT_IOR_EXPR:
11740 {
11741 tree o20 = TREE_OPERAND (op0, 0);
11742 tree o21 = TREE_OPERAND (op0, 1);
11743 switch (TREE_CODE (op1))
11744 {
11745 case BIT_AND_EXPR:
11746 {
11747 tree o50 = TREE_OPERAND (op1, 0);
11748 tree o51 = TREE_OPERAND (op1, 1);
11749 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
11750 {
11751 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
11752 {
11753 {
11754/* #line 697 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11755 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
11756 tree res = generic_simplify_152 (loc, type, op0, op1, captures);
11757 if (res) return res;
11758 }
11759 }
11760 }
11761 break;
11762 }
11763 default:;
11764 }
11765 break;
11766 }
11767 CASE_CONVERT:
11768 {
11769 tree o20 = TREE_OPERAND (op0, 0);
11770 switch (TREE_CODE (o20))
11771 {
11772 case BIT_AND_EXPR:
11773 {
11774 tree o30 = TREE_OPERAND (o20, 0);
11775 tree o31 = TREE_OPERAND (o20, 1);
11776 switch (TREE_CODE (o31))
11777 {
11778 case INTEGER_CST:
11779 {
11780 switch (TREE_CODE (op1))
11781 {
11782 CASE_CONVERT:
11783 {
11784 tree o60 = TREE_OPERAND (op1, 0);
11785 switch (TREE_CODE (o60))
11786 {
11787 case BIT_AND_EXPR:
11788 {
11789 tree o70 = TREE_OPERAND (o60, 0);
11790 tree o71 = TREE_OPERAND (o60, 1);
11791 switch (TREE_CODE (o71))
11792 {
11793 case INTEGER_CST:
11794 {
11795 {
11796/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11797 tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
11798 tree res = generic_simplify_188 (loc, type, op0, op1, captures, PLUS_EXPR);
11799 if (res) return res;
11800 }
11801 break;
11802 }
11803 default:;
11804 }
11805 break;
11806 }
11807 default:;
11808 }
11809 break;
11810 }
11811 case BIT_AND_EXPR:
11812 {
11813 tree o60 = TREE_OPERAND (op1, 0);
11814 tree o61 = TREE_OPERAND (op1, 1);
11815 switch (TREE_CODE (o61))
11816 {
11817 case INTEGER_CST:
11818 {
11819 {
11820/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11821 tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
11822 tree res = generic_simplify_188 (loc, type, op0, op1, captures, PLUS_EXPR);
11823 if (res) return res;
11824 }
11825 break;
11826 }
11827 default:;
11828 }
11829 break;
11830 }
11831 default:;
11832 }
11833 break;
11834 }
11835 default:;
11836 }
11837 break;
11838 }
11839 default:;
11840 }
11841 break;
11842 }
11843 default:;
11844 }
11845 switch (TREE_CODE (op1))
11846 {
11847 CASE_CONVERT:
11848 {
11849 tree o30 = TREE_OPERAND (op1, 0);
11850 switch (TREE_CODE (o30))
11851 {
11852 case NEGATE_EXPR:
11853 {
11854 tree o40 = TREE_OPERAND (o30, 0);
11855 {
11856/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11857 tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
11858 tree res = generic_simplify_9 (loc, type, op0, op1, captures);
11859 if (res) return res;
11860 }
11861 break;
11862 }
11863 default:;
11864 }
11865 break;
11866 }
11867 default:;
11868 }
11869 switch (TREE_CODE (op0))
11870 {
11871 CASE_CONVERT:
11872 {
11873 tree o20 = TREE_OPERAND (op0, 0);
11874 switch (TREE_CODE (o20))
11875 {
11876 case NEGATE_EXPR:
11877 {
11878 tree o30 = TREE_OPERAND (o20, 0);
11879 {
11880/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11881 tree captures[2] ATTRIBUTE_UNUSED = { op1, o30 };
11882 tree res = generic_simplify_9 (loc, type, op0, op1, captures);
11883 if (res) return res;
11884 }
11885 break;
11886 }
11887 default:;
11888 }
11889 break;
11890 }
11891 default:;
11892 }
11893 switch (TREE_CODE (op1))
11894 {
11895 case NEGATE_EXPR:
11896 {
11897 tree o30 = TREE_OPERAND (op1, 0);
11898 {
11899/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11900 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
11901 tree res = generic_simplify_9 (loc, type, op0, op1, captures);
11902 if (res) return res;
11903 }
11904 break;
11905 }
11906 default:;
11907 }
11908 switch (TREE_CODE (op0))
11909 {
11910 case NEGATE_EXPR:
11911 {
11912 tree o20 = TREE_OPERAND (op0, 0);
11913 {
11914/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11915 tree captures[2] ATTRIBUTE_UNUSED = { op1, o20 };
11916 tree res = generic_simplify_9 (loc, type, op0, op1, captures);
11917 if (res) return res;
11918 }
11919 break;
11920 }
11921 case MINUS_EXPR:
11922 {
11923 tree o20 = TREE_OPERAND (op0, 0);
11924 tree o21 = TREE_OPERAND (op0, 1);
11925 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
11926 {
11927 {
11928/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11929 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
11930 tree res = generic_simplify_53 (loc, type, op0, op1, captures);
11931 if (res) return res;
11932 }
11933 }
11934 break;
11935 }
11936 default:;
11937 }
11938 switch (TREE_CODE (op1))
11939 {
11940 case MINUS_EXPR:
11941 {
11942 tree o30 = TREE_OPERAND (op1, 0);
11943 tree o31 = TREE_OPERAND (op1, 1);
11944 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
11945 {
11946 {
11947/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11948 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
11949 tree res = generic_simplify_53 (loc, type, op0, op1, captures);
11950 if (res) return res;
11951 }
11952 }
11953 break;
11954 }
11955 default:;
11956 }
11957 switch (TREE_CODE (op0))
11958 {
11959 case PLUS_EXPR:
11960 {
11961 tree o20 = TREE_OPERAND (op0, 0);
11962 tree o21 = TREE_OPERAND (op0, 1);
11963 if (CONSTANT_CLASS_P (o21))
11964 {
11965 if (CONSTANT_CLASS_P (op1))
11966 {
11967 {
11968/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11969 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
11970 tree res = generic_simplify_217 (loc, type, op0, op1, captures, PLUS_EXPR, PLUS_EXPR);
11971 if (res) return res;
11972 }
11973 }
11974 }
11975 break;
11976 }
11977 case MINUS_EXPR:
11978 {
11979 tree o20 = TREE_OPERAND (op0, 0);
11980 tree o21 = TREE_OPERAND (op0, 1);
11981 if (CONSTANT_CLASS_P (o21))
11982 {
11983 if (CONSTANT_CLASS_P (op1))
11984 {
11985 {
11986/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11987 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
11988 tree res = generic_simplify_217 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR);
11989 if (res) return res;
11990 }
11991 }
11992 }
11993 if (CONSTANT_CLASS_P (o20))
11994 {
11995 if (CONSTANT_CLASS_P (op1))
11996 {
11997 {
11998/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
11999 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
12000 tree res = generic_simplify_165 (loc, type, op0, op1, captures, PLUS_EXPR);
12001 if (res) return res;
12002 }
12003 }
12004 }
12005 break;
12006 }
12007 case BIT_NOT_EXPR:
12008 {
12009 tree o20 = TREE_OPERAND (op0, 0);
12010 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
12011 {
12012 {
12013/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12014 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
12015 tree res = generic_simplify_148 (loc, type, op0, op1, captures);
12016 if (res) return res;
12017 }
12018 }
12019 break;
12020 }
12021 default:;
12022 }
12023 switch (TREE_CODE (op1))
12024 {
12025 case BIT_NOT_EXPR:
12026 {
12027 tree o30 = TREE_OPERAND (op1, 0);
12028 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
12029 {
12030 {
12031/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12032 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
12033 tree res = generic_simplify_148 (loc, type, op0, op1, captures);
12034 if (res) return res;
12035 }
12036 }
12037 break;
12038 }
12039 default:;
12040 }
12041 switch (TREE_CODE (op0))
12042 {
12043 CASE_CONVERT:
12044 {
12045 tree o20 = TREE_OPERAND (op0, 0);
12046 switch (TREE_CODE (o20))
12047 {
12048 case BIT_NOT_EXPR:
12049 {
12050 tree o30 = TREE_OPERAND (o20, 0);
12051 if (integer_each_onep (op1))
12052 {
12053 {
12054/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12055 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
12056 tree res = generic_simplify_71 (loc, type, op0, op1, captures);
12057 if (res) return res;
12058 }
12059 }
12060 break;
12061 }
12062 default:;
12063 }
12064 break;
12065 }
12066 case BIT_NOT_EXPR:
12067 {
12068 tree o20 = TREE_OPERAND (op0, 0);
12069 if (integer_each_onep (op1))
12070 {
12071 {
12072/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12073 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
12074 tree res = generic_simplify_71 (loc, type, op0, op1, captures);
12075 if (res) return res;
12076 }
12077 }
12078 break;
12079 }
12080 default:;
12081 }
12082 switch (TREE_CODE (op1))
12083 {
12084 case REAL_CST:
12085 {
12086 {
12087/* #line 1894 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12088 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
12089/* #line 1894 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12090 if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
12091 {
12092 {
12093/* #line 1895 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12094 tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
12095/* #line 1896 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12096 if (!TREE_OVERFLOW (tem) || !flag_trapping_math)
12097 {
12098 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
12099 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1897, %s:%d\n", __FILE__, __LINE__);
12100 tree res_op0;
12101 res_op0 = captures[0];
12102 tree res_op1;
12103 res_op1 = tem;
12104 tree res;
12105 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
12106 return res;
12107 }
12108 }
12109 }
12110 }
12111 break;
12112 }
12113 default:;
12114 }
12115 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
12116 {
12117 {
12118/* #line 1902 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12119 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
12120/* #line 1902 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12121 if (SCALAR_FLOAT_TYPE_P (type))
12122 {
12123 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1903, %s:%d\n", __FILE__, __LINE__);
12124 tree res_op0;
12125 res_op0 = captures[0];
12126 tree res_op1;
12127 res_op1 = build_real (type, dconst2);
12128 tree res;
12129 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
12130 return res;
12131 }
12132 else
12133 {
12134/* #line 1904 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12135 if (INTEGRAL_TYPE_P (type))
12136 {
12137 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1905, %s:%d\n", __FILE__, __LINE__);
12138 tree res_op0;
12139 res_op0 = captures[0];
12140 tree res_op1;
12141 res_op1 = build_int_cst (type, 2);
12142 tree res;
12143 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
12144 return res;
12145 }
12146 }
12147 }
12148 }
12149 switch (TREE_CODE (op1))
12150 {
12151 case VIEW_CONVERT_EXPR:
12152 {
12153 tree o30 = TREE_OPERAND (op1, 0);
12154 switch (TREE_CODE (o30))
12155 {
12156 case VEC_COND_EXPR:
12157 {
12158 tree o40 = TREE_OPERAND (o30, 0);
12159 tree o41 = TREE_OPERAND (o30, 1);
12160 tree o42 = TREE_OPERAND (o30, 2);
12161 if (integer_each_onep (o41))
12162 {
12163 if (integer_zerop (o42))
12164 {
12165 {
12166/* #line 2236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12167 tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
12168 tree res = generic_simplify_11 (loc, type, op0, op1, captures);
12169 if (res) return res;
12170 }
12171 }
12172 }
12173 break;
12174 }
12175 default:;
12176 }
12177 break;
12178 }
12179 default:;
12180 }
12181 switch (TREE_CODE (op0))
12182 {
12183 case VIEW_CONVERT_EXPR:
12184 {
12185 tree o20 = TREE_OPERAND (op0, 0);
12186 switch (TREE_CODE (o20))
12187 {
12188 case VEC_COND_EXPR:
12189 {
12190 tree o30 = TREE_OPERAND (o20, 0);
12191 tree o31 = TREE_OPERAND (o20, 1);
12192 tree o32 = TREE_OPERAND (o20, 2);
12193 if (integer_each_onep (o31))
12194 {
12195 if (integer_zerop (o32))
12196 {
12197 {
12198/* #line 2236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12199 tree captures[5] ATTRIBUTE_UNUSED = { op1, o20, o30, o31, o32 };
12200 tree res = generic_simplify_11 (loc, type, op0, op1, captures);
12201 if (res) return res;
12202 }
12203 }
12204 }
12205 break;
12206 }
12207 default:;
12208 }
12209 break;
12210 }
12211 default:;
12212 }
12213 switch (TREE_CODE (op1))
12214 {
12215 case VEC_COND_EXPR:
12216 {
12217 tree o30 = TREE_OPERAND (op1, 0);
12218 tree o31 = TREE_OPERAND (op1, 1);
12219 tree o32 = TREE_OPERAND (op1, 2);
12220 if (integer_each_onep (o31))
12221 {
12222 if (integer_zerop (o32))
12223 {
12224 {
12225/* #line 2236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12226 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
12227 tree res = generic_simplify_11 (loc, type, op0, op1, captures);
12228 if (res) return res;
12229 }
12230 }
12231 }
12232 break;
12233 }
12234 default:;
12235 }
12236 switch (TREE_CODE (op0))
12237 {
12238 case VEC_COND_EXPR:
12239 {
12240 tree o20 = TREE_OPERAND (op0, 0);
12241 tree o21 = TREE_OPERAND (op0, 1);
12242 tree o22 = TREE_OPERAND (op0, 2);
12243 if (integer_each_onep (o21))
12244 {
12245 if (integer_zerop (o22))
12246 {
12247 {
12248/* #line 2236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12249 tree captures[5] ATTRIBUTE_UNUSED = { op1, op0, o20, o21, o22 };
12250 tree res = generic_simplify_11 (loc, type, op0, op1, captures);
12251 if (res) return res;
12252 }
12253 }
12254 }
12255 break;
12256 }
12257 default:;
12258 }
12259 return NULL_TREE;
12260}
12261
12262static tree
12263generic_simplify_POINTER_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
12264{
12265 if (integer_zerop (op1))
12266 {
12267 {
12268/* #line 84 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12269 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
12270 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
12271 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__);
12272 tree res_op0;
12273 res_op0 = captures[0];
12274 tree res;
12275 res = non_lvalue_loc (loc, res_op0);
12276 return res;
12277 }
12278 }
12279 switch (TREE_CODE (op0))
12280 {
12281 case POINTER_PLUS_EXPR:
12282 {
12283 tree o20 = TREE_OPERAND (op0, 0);
12284 tree o21 = TREE_OPERAND (op0, 1);
12285 {
12286/* #line 1085 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12287 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
12288 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1085, %s:%d\n", __FILE__, __LINE__);
12289 tree res_op0;
12290 res_op0 = captures[1];
12291 tree res_op1;
12292 {
12293 tree ops1[2], res;
12294 ops1[0] = captures[2];
12295 ops1[1] = captures[3];
12296 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
12297 res_op1 = res;
12298 }
12299 tree res;
12300 res = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
12301 return res;
12302 }
12303 break;
12304 }
12305 default:;
12306 }
12307if (integer_zerop (op0))
12308 {
12309 {
12310/* #line 89 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12311 tree captures[1] ATTRIBUTE_UNUSED = { op1 };
12312 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
12313 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:89, %s:%d\n", __FILE__, __LINE__);
12314 tree res_op0;
12315 {
12316 tree ops1[1], res;
12317 ops1[0] = captures[0];
12318 if (TREE_TYPE (ops1[0]) != type)
12319 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
12320 else
12321 res = ops1[0];
12322 res_op0 = res;
12323 }
12324 tree res;
12325 res = non_lvalue_loc (loc, res_op0);
12326 return res;
12327 }
12328 }
12329 switch (TREE_CODE (op1))
12330 {
12331 CASE_CONVERT:
12332 {
12333 tree o30 = TREE_OPERAND (op1, 0);
12334 switch (TREE_CODE (o30))
12335 {
12336 case MINUS_EXPR:
12337 {
12338 tree o40 = TREE_OPERAND (o30, 0);
12339 tree o41 = TREE_OPERAND (o30, 1);
12340 switch (TREE_CODE (o40))
12341 {
12342 CASE_CONVERT:
12343 {
12344 tree o50 = TREE_OPERAND (o40, 0);
12345 switch (TREE_CODE (o41))
12346 {
12347 CASE_CONVERT:
12348 {
12349 tree o70 = TREE_OPERAND (o41, 0);
12350 if (o70 == op0 || (operand_equal_p (o70, op0, 0) && types_match (o70, op0)))
12351 {
12352 {
12353/* #line 1098 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12354 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o50 };
12355/* #line 1098 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12356 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (1 && type == TREE_TYPE (captures[3]))))
12357 {
12358 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1101, %s:%d\n", __FILE__, __LINE__);
12359 tree res;
12360 res = captures[3];
12361 if (TREE_SIDE_EFFECTS (captures[0]))
12362 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
12363 return res;
12364 }
12365 }
12366 }
12367 break;
12368 }
12369 default:;
12370 }
12371 break;
12372 }
12373 default:;
12374 }
12375 break;
12376 }
12377 default:;
12378 }
12379 break;
12380 }
12381 case MINUS_EXPR:
12382 {
12383 tree o30 = TREE_OPERAND (op1, 0);
12384 tree o31 = TREE_OPERAND (op1, 1);
12385 switch (TREE_CODE (o30))
12386 {
12387 CASE_CONVERT:
12388 {
12389 tree o40 = TREE_OPERAND (o30, 0);
12390 switch (TREE_CODE (o31))
12391 {
12392 CASE_CONVERT:
12393 {
12394 tree o60 = TREE_OPERAND (o31, 0);
12395 if (o60 == op0 || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
12396 {
12397 {
12398/* #line 1098 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12399 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o40 };
12400/* #line 1098 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12401 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (1 && type == TREE_TYPE (captures[3]))))
12402 {
12403 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1101, %s:%d\n", __FILE__, __LINE__);
12404 tree res;
12405 res = captures[3];
12406 if (TREE_SIDE_EFFECTS (captures[0]))
12407 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
12408 return res;
12409 }
12410 }
12411 }
12412 break;
12413 }
12414 default:;
12415 }
12416 break;
12417 }
12418 default:;
12419 }
12420 break;
12421 }
12422 case NEGATE_EXPR:
12423 {
12424 tree o30 = TREE_OPERAND (op1, 0);
12425 switch (TREE_CODE (o30))
12426 {
12427 case BIT_AND_EXPR:
12428 {
12429 tree o40 = TREE_OPERAND (o30, 0);
12430 tree o41 = TREE_OPERAND (o30, 1);
12431 switch (TREE_CODE (o40))
12432 {
12433 CASE_CONVERT:
12434 {
12435 tree o50 = TREE_OPERAND (o40, 0);
12436 if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
12437 {
12438 switch (TREE_CODE (o41))
12439 {
12440 case INTEGER_CST:
12441 {
12442 {
12443/* #line 1112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12444 tree captures[2] ATTRIBUTE_UNUSED = { op0, o41 };
12445 {
12446/* #line 1112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12447 tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), wi::bit_not (captures[1]));
12448 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
12449 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1113, %s:%d\n", __FILE__, __LINE__);
12450 tree res_op0;
12451 res_op0 = captures[0];
12452 tree res_op1;
12453 res_op1 = algn;
12454 tree res;
12455 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
12456 return res;
12457 }
12458 }
12459 break;
12460 }
12461 default:;
12462 }
12463 }
12464 break;
12465 }
12466 default:;
12467 }
12468 break;
12469 }
12470 default:;
12471 }
12472 break;
12473 }
12474 default:;
12475 }
12476 return NULL_TREE;
12477}
12478
12479static tree
12480generic_simplify_MINUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
12481{
12482 if (integer_zerop (op1))
12483 {
12484 {
12485/* #line 84 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12486 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
12487 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
12488 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__);
12489 tree res_op0;
12490 res_op0 = captures[0];
12491 tree res;
12492 res = non_lvalue_loc (loc, res_op0);
12493 return res;
12494 }
12495 }
12496 if (real_zerop (op1))
12497 {
12498 {
12499/* #line 101 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12500 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
12501/* #line 101 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12502 if (fold_real_zero_addition_p (type, captures[1], 1))
12503 {
12504 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:102, %s:%d\n", __FILE__, __LINE__);
12505 tree res_op0;
12506 res_op0 = captures[0];
12507 tree res;
12508 res = non_lvalue_loc (loc, res_op0);
12509 if (TREE_SIDE_EFFECTS (captures[1]))
12510 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
12511 return res;
12512 }
12513 }
12514 }
12515 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
12516 {
12517 {
12518/* #line 111 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12519 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
12520/* #line 111 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12521 if (!FLOAT_TYPE_P (type) || !HONOR_NANS (type))
12522 {
12523 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:112, %s:%d\n", __FILE__, __LINE__);
12524 tree res;
12525 res = build_zero_cst (type);
12526 if (TREE_SIDE_EFFECTS (captures[0]))
12527 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
12528 return res;
12529 }
12530 }
12531 }
12532 switch (TREE_CODE (op0))
12533 {
12534 CASE_CONVERT:
12535 {
12536 tree o20 = TREE_OPERAND (op0, 0);
12537 switch (TREE_CODE (op1))
12538 {
12539 CASE_CONVERT:
12540 {
12541 tree o40 = TREE_OPERAND (op1, 0);
12542 switch (TREE_CODE (o40))
12543 {
12544 case MULT_EXPR:
12545 {
12546 tree o50 = TREE_OPERAND (o40, 0);
12547 tree o51 = TREE_OPERAND (o40, 1);
12548 switch (TREE_CODE (o50))
12549 {
12550 case TRUNC_DIV_EXPR:
12551 {
12552 tree o60 = TREE_OPERAND (o50, 0);
12553 tree o61 = TREE_OPERAND (o50, 1);
12554 if (o60 == o20 || operand_equal_p (o60, o20, 0))
12555 {
12556 if (o51 == o61 || operand_equal_p (o51, o61, 0))
12557 {
12558 {
12559/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12560 tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o61 };
12561 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12562 if (res) return res;
12563 }
12564 }
12565 }
12566 break;
12567 }
12568 default:;
12569 }
12570 switch (TREE_CODE (o51))
12571 {
12572 case TRUNC_DIV_EXPR:
12573 {
12574 tree o70 = TREE_OPERAND (o51, 0);
12575 tree o71 = TREE_OPERAND (o51, 1);
12576 if (o70 == o20 || operand_equal_p (o70, o20, 0))
12577 {
12578 if (o71 == o50 || operand_equal_p (o71, o50, 0))
12579 {
12580 {
12581/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12582 tree captures[4] ATTRIBUTE_UNUSED = { o70, o71, o20, o50 };
12583 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12584 if (res) return res;
12585 }
12586 }
12587 }
12588 break;
12589 }
12590 default:;
12591 }
12592 break;
12593 }
12594 default:;
12595 }
12596 break;
12597 }
12598 case MULT_EXPR:
12599 {
12600 tree o40 = TREE_OPERAND (op1, 0);
12601 tree o41 = TREE_OPERAND (op1, 1);
12602 switch (TREE_CODE (o40))
12603 {
12604 case TRUNC_DIV_EXPR:
12605 {
12606 tree o50 = TREE_OPERAND (o40, 0);
12607 tree o51 = TREE_OPERAND (o40, 1);
12608 if (o50 == o20 || operand_equal_p (o50, o20, 0))
12609 {
12610 if (o41 == o51 || operand_equal_p (o41, o51, 0))
12611 {
12612 {
12613/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12614 tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o20, o51 };
12615 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12616 if (res) return res;
12617 }
12618 }
12619 }
12620 break;
12621 }
12622 default:;
12623 }
12624 switch (TREE_CODE (o41))
12625 {
12626 case TRUNC_DIV_EXPR:
12627 {
12628 tree o60 = TREE_OPERAND (o41, 0);
12629 tree o61 = TREE_OPERAND (o41, 1);
12630 if (o60 == o20 || operand_equal_p (o60, o20, 0))
12631 {
12632 if (o61 == o40 || operand_equal_p (o61, o40, 0))
12633 {
12634 {
12635/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12636 tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o40 };
12637 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12638 if (res) return res;
12639 }
12640 }
12641 }
12642 break;
12643 }
12644 default:;
12645 }
12646 break;
12647 }
12648 default:;
12649 }
12650 break;
12651 }
12652 default:;
12653 }
12654 switch (TREE_CODE (op1))
12655 {
12656 CASE_CONVERT:
12657 {
12658 tree o30 = TREE_OPERAND (op1, 0);
12659 switch (TREE_CODE (o30))
12660 {
12661 case MULT_EXPR:
12662 {
12663 tree o40 = TREE_OPERAND (o30, 0);
12664 tree o41 = TREE_OPERAND (o30, 1);
12665 switch (TREE_CODE (o40))
12666 {
12667 case TRUNC_DIV_EXPR:
12668 {
12669 tree o50 = TREE_OPERAND (o40, 0);
12670 tree o51 = TREE_OPERAND (o40, 1);
12671 if (o50 == op0 || operand_equal_p (o50, op0, 0))
12672 {
12673 if (o41 == o51 || operand_equal_p (o41, o51, 0))
12674 {
12675 {
12676/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12677 tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o51 };
12678 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12679 if (res) return res;
12680 }
12681 }
12682 }
12683 break;
12684 }
12685 default:;
12686 }
12687 switch (TREE_CODE (o41))
12688 {
12689 case TRUNC_DIV_EXPR:
12690 {
12691 tree o60 = TREE_OPERAND (o41, 0);
12692 tree o61 = TREE_OPERAND (o41, 1);
12693 if (o60 == op0 || operand_equal_p (o60, op0, 0))
12694 {
12695 if (o61 == o40 || operand_equal_p (o61, o40, 0))
12696 {
12697 {
12698/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12699 tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, op0, o40 };
12700 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12701 if (res) return res;
12702 }
12703 }
12704 }
12705 break;
12706 }
12707 default:;
12708 }
12709 break;
12710 }
12711 default:;
12712 }
12713 break;
12714 }
12715 case MULT_EXPR:
12716 {
12717 tree o30 = TREE_OPERAND (op1, 0);
12718 tree o31 = TREE_OPERAND (op1, 1);
12719 switch (TREE_CODE (o30))
12720 {
12721 case TRUNC_DIV_EXPR:
12722 {
12723 tree o40 = TREE_OPERAND (o30, 0);
12724 tree o41 = TREE_OPERAND (o30, 1);
12725 if (o40 == op0 || operand_equal_p (o40, op0, 0))
12726 {
12727 if (o31 == o41 || operand_equal_p (o31, o41, 0))
12728 {
12729 {
12730/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12731 tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, op0, o41 };
12732 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12733 if (res) return res;
12734 }
12735 }
12736 }
12737 break;
12738 }
12739 default:;
12740 }
12741 switch (TREE_CODE (o31))
12742 {
12743 case TRUNC_DIV_EXPR:
12744 {
12745 tree o50 = TREE_OPERAND (o31, 0);
12746 tree o51 = TREE_OPERAND (o31, 1);
12747 if (o50 == op0 || operand_equal_p (o50, op0, 0))
12748 {
12749 if (o51 == o30 || operand_equal_p (o51, o30, 0))
12750 {
12751 {
12752/* #line 358 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12753 tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o30 };
12754 tree res = generic_simplify_37 (loc, type, op0, op1, captures);
12755 if (res) return res;
12756 }
12757 }
12758 }
12759 break;
12760 }
12761 default:;
12762 }
12763 break;
12764 }
12765 default:;
12766 }
12767 switch (TREE_CODE (op0))
12768 {
12769 case BIT_AND_EXPR:
12770 {
12771 tree o20 = TREE_OPERAND (op0, 0);
12772 tree o21 = TREE_OPERAND (op0, 1);
12773 switch (TREE_CODE (o21))
12774 {
12775 case BIT_NOT_EXPR:
12776 {
12777 tree o40 = TREE_OPERAND (o21, 0);
12778 switch (TREE_CODE (op1))
12779 {
12780 case BIT_AND_EXPR:
12781 {
12782 tree o60 = TREE_OPERAND (op1, 0);
12783 tree o61 = TREE_OPERAND (op1, 1);
12784 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
12785 {
12786 if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
12787 {
12788 {
12789/* #line 557 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12790 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
12791 tree res = generic_simplify_41 (loc, type, op0, op1, captures);
12792 if (res) return res;
12793 }
12794 }
12795 }
12796 if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
12797 {
12798 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
12799 {
12800 {
12801/* #line 557 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12802 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
12803 tree res = generic_simplify_41 (loc, type, op0, op1, captures);
12804 if (res) return res;
12805 }
12806 }
12807 }
12808 break;
12809 }
12810 default:;
12811 }
12812 break;
12813 }
12814 default:;
12815 }
12816 switch (TREE_CODE (o20))
12817 {
12818 case BIT_NOT_EXPR:
12819 {
12820 tree o30 = TREE_OPERAND (o20, 0);
12821 switch (TREE_CODE (op1))
12822 {
12823 case BIT_AND_EXPR:
12824 {
12825 tree o60 = TREE_OPERAND (op1, 0);
12826 tree o61 = TREE_OPERAND (op1, 1);
12827 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
12828 {
12829 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
12830 {
12831 {
12832/* #line 557 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12833 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
12834 tree res = generic_simplify_41 (loc, type, op0, op1, captures);
12835 if (res) return res;
12836 }
12837 }
12838 }
12839 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
12840 {
12841 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
12842 {
12843 {
12844/* #line 557 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12845 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
12846 tree res = generic_simplify_41 (loc, type, op0, op1, captures);
12847 if (res) return res;
12848 }
12849 }
12850 }
12851 break;
12852 }
12853 default:;
12854 }
12855 break;
12856 }
12857 default:;
12858 }
12859 switch (TREE_CODE (o21))
12860 {
12861 case INTEGER_CST:
12862 {
12863 switch (TREE_CODE (op1))
12864 {
12865 case BIT_AND_EXPR:
12866 {
12867 tree o50 = TREE_OPERAND (op1, 0);
12868 tree o51 = TREE_OPERAND (op1, 1);
12869 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
12870 {
12871 switch (TREE_CODE (o51))
12872 {
12873 case INTEGER_CST:
12874 {
12875 {
12876/* #line 560 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12877 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
12878/* #line 560 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12879 if (wi::bit_not (captures[2]) == captures[4])
12880 {
12881 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:561, %s:%d\n", __FILE__, __LINE__);
12882 if (! tree_invariant_p (captures[4])) return NULL_TREE;
12883 tree res_op0;
12884 {
12885 tree ops1[2], res;
12886 ops1[0] = captures[1];
12887 ops1[1] = unshare_expr (captures[4]);
12888 res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
12889 res_op0 = res;
12890 }
12891 tree res_op1;
12892 res_op1 = captures[4];
12893 tree res;
12894 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
12895 if (TREE_SIDE_EFFECTS (captures[2]))
12896 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
12897 return res;
12898 }
12899 }
12900 break;
12901 }
12902 default:;
12903 }
12904 }
12905 break;
12906 }
12907 default:;
12908 }
12909 break;
12910 }
12911 default:;
12912 }
12913 switch (TREE_CODE (op1))
12914 {
12915 case BIT_AND_EXPR:
12916 {
12917 tree o50 = TREE_OPERAND (op1, 0);
12918 tree o51 = TREE_OPERAND (op1, 1);
12919 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
12920 {
12921 switch (TREE_CODE (o51))
12922 {
12923 case BIT_NOT_EXPR:
12924 {
12925 tree o70 = TREE_OPERAND (o51, 0);
12926 if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
12927 {
12928 {
12929/* #line 566 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12930 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
12931 tree res = generic_simplify_44 (loc, type, op0, op1, captures);
12932 if (res) return res;
12933 }
12934 }
12935 break;
12936 }
12937 default:;
12938 }
12939 }
12940 switch (TREE_CODE (o50))
12941 {
12942 case BIT_NOT_EXPR:
12943 {
12944 tree o60 = TREE_OPERAND (o50, 0);
12945 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
12946 {
12947 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
12948 {
12949 {
12950/* #line 566 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12951 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
12952 tree res = generic_simplify_44 (loc, type, op0, op1, captures);
12953 if (res) return res;
12954 }
12955 }
12956 }
12957 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
12958 {
12959 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
12960 {
12961 {
12962/* #line 566 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12963 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
12964 tree res = generic_simplify_44 (loc, type, op0, op1, captures);
12965 if (res) return res;
12966 }
12967 }
12968 }
12969 break;
12970 }
12971 default:;
12972 }
12973 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
12974 {
12975 switch (TREE_CODE (o51))
12976 {
12977 case BIT_NOT_EXPR:
12978 {
12979 tree o70 = TREE_OPERAND (o51, 0);
12980 if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
12981 {
12982 {
12983/* #line 566 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
12984 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
12985 tree res = generic_simplify_44 (loc, type, op0, op1, captures);
12986 if (res) return res;
12987 }
12988 }
12989 break;
12990 }
12991 default:;
12992 }
12993 }
12994 break;
12995 }
12996 default:;
12997 }
12998 break;
12999 }
13000 case PLUS_EXPR:
13001 {
13002 tree o20 = TREE_OPERAND (op0, 0);
13003 tree o21 = TREE_OPERAND (op0, 1);
13004 switch (TREE_CODE (op1))
13005 {
13006 case BIT_IOR_EXPR:
13007 {
13008 tree o50 = TREE_OPERAND (op1, 0);
13009 tree o51 = TREE_OPERAND (op1, 1);
13010 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
13011 {
13012 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
13013 {
13014 {
13015/* #line 702 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13016 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13017/* #line 702 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13018 if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
13019 {
13020 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:704, %s:%d\n", __FILE__, __LINE__);
13021 tree res_op0;
13022 res_op0 = captures[0];
13023 tree res_op1;
13024 res_op1 = captures[1];
13025 tree res;
13026 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
13027 return res;
13028 }
13029 }
13030 }
13031 }
13032 break;
13033 }
13034 case BIT_AND_EXPR:
13035 {
13036 tree o50 = TREE_OPERAND (op1, 0);
13037 tree o51 = TREE_OPERAND (op1, 1);
13038 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
13039 {
13040 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
13041 {
13042 {
13043/* #line 709 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13044 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13045/* #line 709 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13046 if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
13047 {
13048 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:711, %s:%d\n", __FILE__, __LINE__);
13049 tree res_op0;
13050 res_op0 = captures[0];
13051 tree res_op1;
13052 res_op1 = captures[1];
13053 tree res;
13054 res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
13055 return res;
13056 }
13057 }
13058 }
13059 }
13060 break;
13061 }
13062 default:;
13063 }
13064 break;
13065 }
13066 case BIT_IOR_EXPR:
13067 {
13068 tree o20 = TREE_OPERAND (op0, 0);
13069 tree o21 = TREE_OPERAND (op0, 1);
13070 switch (TREE_CODE (op1))
13071 {
13072 case BIT_XOR_EXPR:
13073 {
13074 tree o50 = TREE_OPERAND (op1, 0);
13075 tree o51 = TREE_OPERAND (op1, 1);
13076 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
13077 {
13078 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
13079 {
13080 {
13081/* #line 716 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13082 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13083 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:716, %s:%d\n", __FILE__, __LINE__);
13084 tree res_op0;
13085 res_op0 = captures[0];
13086 tree res_op1;
13087 res_op1 = captures[1];
13088 tree res;
13089 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
13090 return res;
13091 }
13092 }
13093 }
13094 break;
13095 }
13096 case BIT_AND_EXPR:
13097 {
13098 tree o50 = TREE_OPERAND (op1, 0);
13099 tree o51 = TREE_OPERAND (op1, 1);
13100 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
13101 {
13102 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
13103 {
13104 {
13105/* #line 721 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13106 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13107 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:721, %s:%d\n", __FILE__, __LINE__);
13108 tree res_op0;
13109 res_op0 = captures[0];
13110 tree res_op1;
13111 res_op1 = captures[1];
13112 tree res;
13113 res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
13114 return res;
13115 }
13116 }
13117 }
13118 break;
13119 }
13120 default:;
13121 }
13122 break;
13123 }
13124 default:;
13125 }
13126 if (tree_negate_expr_p (op1))
13127 {
13128 {
13129/* #line 873 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13130 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
13131/* #line 873 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13132 if (!FIXED_POINT_TYPE_P (type))
13133 {
13134 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:874, %s:%d\n", __FILE__, __LINE__);
13135 tree res_op0;
13136 res_op0 = captures[0];
13137 tree res_op1;
13138 {
13139 tree ops1[1], res;
13140 ops1[0] = captures[1];
13141 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
13142 res_op1 = res;
13143 }
13144 tree res;
13145 res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
13146 return res;
13147 }
13148 }
13149 }
13150 switch (TREE_CODE (op0))
13151 {
13152 CASE_CONVERT:
13153 {
13154 tree o20 = TREE_OPERAND (op0, 0);
13155 switch (TREE_CODE (op1))
13156 {
13157 CASE_CONVERT:
13158 {
13159 tree o40 = TREE_OPERAND (op1, 0);
13160 switch (TREE_CODE (o40))
13161 {
13162 case BIT_AND_EXPR:
13163 {
13164 tree o50 = TREE_OPERAND (o40, 0);
13165 tree o51 = TREE_OPERAND (o40, 1);
13166 if (o50 == o20 || operand_equal_p (o50, o20, 0))
13167 {
13168 {
13169/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13170 tree captures[5] ATTRIBUTE_UNUSED = { o50, op1, o40, o51, o20 };
13171 tree res = generic_simplify_4 (loc, type, op0, op1, captures);
13172 if (res) return res;
13173 }
13174 }
13175 if (o51 == o20 || operand_equal_p (o51, o20, 0))
13176 {
13177 {
13178/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13179 tree captures[5] ATTRIBUTE_UNUSED = { o51, op1, o40, o50, o20 };
13180 tree res = generic_simplify_4 (loc, type, op0, op1, captures);
13181 if (res) return res;
13182 }
13183 }
13184 break;
13185 }
13186 default:;
13187 }
13188 break;
13189 }
13190 case BIT_AND_EXPR:
13191 {
13192 tree o40 = TREE_OPERAND (op1, 0);
13193 tree o41 = TREE_OPERAND (op1, 1);
13194 if (o40 == o20 || operand_equal_p (o40, o20, 0))
13195 {
13196 {
13197/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13198 tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, op1, o41, o20 };
13199 tree res = generic_simplify_30 (loc, type, op0, op1, captures);
13200 if (res) return res;
13201 }
13202 }
13203 if (o41 == o20 || operand_equal_p (o41, o20, 0))
13204 {
13205 {
13206/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13207 tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, op1, o40, o20 };
13208 tree res = generic_simplify_30 (loc, type, op0, op1, captures);
13209 if (res) return res;
13210 }
13211 }
13212 break;
13213 }
13214 default:;
13215 }
13216 break;
13217 }
13218 default:;
13219 }
13220 switch (TREE_CODE (op1))
13221 {
13222 CASE_CONVERT:
13223 {
13224 tree o30 = TREE_OPERAND (op1, 0);
13225 switch (TREE_CODE (o30))
13226 {
13227 case BIT_AND_EXPR:
13228 {
13229 tree o40 = TREE_OPERAND (o30, 0);
13230 tree o41 = TREE_OPERAND (o30, 1);
13231 if (o40 == op0 || operand_equal_p (o40, op0, 0))
13232 {
13233 {
13234/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13235 tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, o30, o41, op0 };
13236 tree res = generic_simplify_4 (loc, type, op0, op1, captures);
13237 if (res) return res;
13238 }
13239 }
13240 if (o41 == op0 || operand_equal_p (o41, op0, 0))
13241 {
13242 {
13243/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13244 tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 };
13245 tree res = generic_simplify_4 (loc, type, op0, op1, captures);
13246 if (res) return res;
13247 }
13248 }
13249 break;
13250 }
13251 default:;
13252 }
13253 break;
13254 }
13255 case BIT_AND_EXPR:
13256 {
13257 tree o30 = TREE_OPERAND (op1, 0);
13258 tree o31 = TREE_OPERAND (op1, 1);
13259 if (o30 == op0 || operand_equal_p (o30, op0, 0))
13260 {
13261 {
13262/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13263 tree captures[5] ATTRIBUTE_UNUSED = { o30, op1, op1, o31, op0 };
13264 tree res = generic_simplify_30 (loc, type, op0, op1, captures);
13265 if (res) return res;
13266 }
13267 }
13268 if (o31 == op0 || operand_equal_p (o31, op0, 0))
13269 {
13270 {
13271/* #line 1009 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13272 tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 };
13273 tree res = generic_simplify_30 (loc, type, op0, op1, captures);
13274 if (res) return res;
13275 }
13276 }
13277 break;
13278 }
13279 default:;
13280 }
13281 switch (TREE_CODE (op0))
13282 {
13283 CASE_CONVERT:
13284 {
13285 tree o20 = TREE_OPERAND (op0, 0);
13286 switch (TREE_CODE (o20))
13287 {
13288 case ADDR_EXPR:
13289 {
13290 switch (TREE_CODE (op1))
13291 {
13292 CASE_CONVERT:
13293 {
13294 tree o40 = TREE_OPERAND (op1, 0);
13295 {
13296/* #line 1118 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13297 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
13298/* #line 1118 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13299 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
13300 {
13301 {
13302/* #line 1119 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13303 HOST_WIDE_INT diff;
13304/* #line 1120 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13305 if (ptr_difference_const (captures[0], captures[1], &diff))
13306 {
13307 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1121, %s:%d\n", __FILE__, __LINE__);
13308 tree res;
13309 res = build_int_cst_type (type, diff);
13310 if (TREE_SIDE_EFFECTS (captures[0]))
13311 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
13312 if (TREE_SIDE_EFFECTS (captures[1]))
13313 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
13314 return res;
13315 }
13316 }
13317 }
13318 }
13319 break;
13320 }
13321 default:;
13322 }
13323 break;
13324 }
13325 default:;
13326 }
13327 switch (TREE_CODE (op1))
13328 {
13329 CASE_CONVERT:
13330 {
13331 tree o40 = TREE_OPERAND (op1, 0);
13332 switch (TREE_CODE (o40))
13333 {
13334 case ADDR_EXPR:
13335 {
13336 {
13337/* #line 1124 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13338 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
13339/* #line 1124 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13340 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
13341 {
13342 {
13343/* #line 1125 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13344 HOST_WIDE_INT diff;
13345/* #line 1126 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13346 if (ptr_difference_const (captures[0], captures[1], &diff))
13347 {
13348 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1127, %s:%d\n", __FILE__, __LINE__);
13349 tree res;
13350 res = build_int_cst_type (type, diff);
13351 if (TREE_SIDE_EFFECTS (captures[0]))
13352 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
13353 if (TREE_SIDE_EFFECTS (captures[1]))
13354 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
13355 return res;
13356 }
13357 }
13358 }
13359 }
13360 break;
13361 }
13362 default:;
13363 }
13364 break;
13365 }
13366 default:;
13367 }
13368 break;
13369 }
13370 default:;
13371 }
13372 switch (TREE_CODE (op1))
13373 {
13374 CASE_CONVERT:
13375 {
13376 tree o30 = TREE_OPERAND (op1, 0);
13377 switch (TREE_CODE (o30))
13378 {
13379 case NEGATE_EXPR:
13380 {
13381 tree o40 = TREE_OPERAND (o30, 0);
13382 {
13383/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13384 tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
13385 tree res = generic_simplify_59 (loc, type, op0, op1, captures);
13386 if (res) return res;
13387 }
13388 break;
13389 }
13390 default:;
13391 }
13392 break;
13393 }
13394 case NEGATE_EXPR:
13395 {
13396 tree o30 = TREE_OPERAND (op1, 0);
13397 {
13398/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13399 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
13400 tree res = generic_simplify_59 (loc, type, op0, op1, captures);
13401 if (res) return res;
13402 }
13403 break;
13404 }
13405 default:;
13406 }
13407 switch (TREE_CODE (op0))
13408 {
13409 case PLUS_EXPR:
13410 {
13411 tree o20 = TREE_OPERAND (op0, 0);
13412 tree o21 = TREE_OPERAND (op0, 1);
13413 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
13414 {
13415 {
13416/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13417 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13418 tree res = generic_simplify_91 (loc, type, op0, op1, captures);
13419 if (res) return res;
13420 }
13421 }
13422 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
13423 {
13424 {
13425/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13426 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
13427 tree res = generic_simplify_91 (loc, type, op0, op1, captures);
13428 if (res) return res;
13429 }
13430 }
13431 break;
13432 }
13433 case MINUS_EXPR:
13434 {
13435 tree o20 = TREE_OPERAND (op0, 0);
13436 tree o21 = TREE_OPERAND (op0, 1);
13437 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
13438 {
13439 {
13440/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13441 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
13442/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13443 if (!TYPE_SATURATING (type))
13444 {
13445/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13446 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13447 {
13448 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1200, %s:%d\n", __FILE__, __LINE__);
13449 tree res_op0;
13450 res_op0 = captures[1];
13451 tree res;
13452 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13453 if (TREE_SIDE_EFFECTS (captures[0]))
13454 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
13455 return res;
13456 }
13457 }
13458 }
13459 }
13460 break;
13461 }
13462 default:;
13463 }
13464 switch (TREE_CODE (op1))
13465 {
13466 case PLUS_EXPR:
13467 {
13468 tree o30 = TREE_OPERAND (op1, 0);
13469 tree o31 = TREE_OPERAND (op1, 1);
13470 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
13471 {
13472 {
13473/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13474 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
13475 tree res = generic_simplify_130 (loc, type, op0, op1, captures);
13476 if (res) return res;
13477 }
13478 }
13479 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
13480 {
13481 {
13482/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13483 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
13484 tree res = generic_simplify_130 (loc, type, op0, op1, captures);
13485 if (res) return res;
13486 }
13487 }
13488 break;
13489 }
13490 case MINUS_EXPR:
13491 {
13492 tree o30 = TREE_OPERAND (op1, 0);
13493 tree o31 = TREE_OPERAND (op1, 1);
13494 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
13495 {
13496 {
13497/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13498 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
13499/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13500 if (!TYPE_SATURATING (type))
13501 {
13502/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13503 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13504 {
13505 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1209, %s:%d\n", __FILE__, __LINE__);
13506 tree res;
13507 res = captures[1];
13508 if (TREE_SIDE_EFFECTS (captures[0]))
13509 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
13510 return res;
13511 }
13512 }
13513 }
13514 }
13515 break;
13516 }
13517 default:;
13518 }
13519 switch (TREE_CODE (op0))
13520 {
13521 case PLUS_EXPR:
13522 {
13523 tree o20 = TREE_OPERAND (op0, 0);
13524 tree o21 = TREE_OPERAND (op0, 1);
13525 if (CONSTANT_CLASS_P (o21))
13526 {
13527 if (CONSTANT_CLASS_P (op1))
13528 {
13529 {
13530/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13531 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
13532 tree res = generic_simplify_217 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR);
13533 if (res) return res;
13534 }
13535 }
13536 }
13537 break;
13538 }
13539 case MINUS_EXPR:
13540 {
13541 tree o20 = TREE_OPERAND (op0, 0);
13542 tree o21 = TREE_OPERAND (op0, 1);
13543 if (CONSTANT_CLASS_P (o21))
13544 {
13545 if (CONSTANT_CLASS_P (op1))
13546 {
13547 {
13548/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13549 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
13550 tree res = generic_simplify_217 (loc, type, op0, op1, captures, MINUS_EXPR, MINUS_EXPR);
13551 if (res) return res;
13552 }
13553 }
13554 }
13555 if (CONSTANT_CLASS_P (o20))
13556 {
13557 if (CONSTANT_CLASS_P (op1))
13558 {
13559 {
13560/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13561 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
13562 tree res = generic_simplify_165 (loc, type, op0, op1, captures, MINUS_EXPR);
13563 if (res) return res;
13564 }
13565 }
13566 }
13567 break;
13568 }
13569 CASE_CONVERT:
13570 {
13571 tree o20 = TREE_OPERAND (op0, 0);
13572 switch (TREE_CODE (o20))
13573 {
13574 case NEGATE_EXPR:
13575 {
13576 tree o30 = TREE_OPERAND (o20, 0);
13577 if (integer_each_onep (op1))
13578 {
13579 {
13580/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13581 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
13582 tree res = generic_simplify_76 (loc, type, op0, op1, captures);
13583 if (res) return res;
13584 }
13585 }
13586 break;
13587 }
13588 case PLUS_EXPR:
13589 {
13590 tree o30 = TREE_OPERAND (o20, 0);
13591 tree o31 = TREE_OPERAND (o20, 1);
13592 switch (TREE_CODE (op1))
13593 {
13594 CASE_CONVERT:
13595 {
13596 tree o60 = TREE_OPERAND (op1, 0);
13597 if (o60 == o30 || operand_equal_p (o60, o30, 0))
13598 {
13599 {
13600/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13601 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
13602/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13603 if (!TYPE_SATURATING (type))
13604 {
13605/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13606 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13607 {
13608/* #line 1268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13609 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
13610 {
13611 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1285, %s:%d\n", __FILE__, __LINE__);
13612 tree res_op0;
13613 res_op0 = captures[1];
13614 tree res;
13615 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13616 if (TREE_SIDE_EFFECTS (captures[2]))
13617 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
13618 return res;
13619 }
13620 }
13621 }
13622 }
13623 }
13624 break;
13625 }
13626 default:;
13627 }
13628 break;
13629 }
13630 case POINTER_PLUS_EXPR:
13631 {
13632 tree o30 = TREE_OPERAND (o20, 0);
13633 tree o31 = TREE_OPERAND (o20, 1);
13634 switch (TREE_CODE (op1))
13635 {
13636 CASE_CONVERT:
13637 {
13638 tree o60 = TREE_OPERAND (op1, 0);
13639 if (o60 == o30 || operand_equal_p (o60, o30, 0))
13640 {
13641 {
13642/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13643 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
13644/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13645 if (!TYPE_SATURATING (type))
13646 {
13647/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13648 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13649 {
13650/* #line 1268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13651 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
13652 {
13653 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1285, %s:%d\n", __FILE__, __LINE__);
13654 tree res_op0;
13655 res_op0 = captures[1];
13656 tree res;
13657 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13658 if (TREE_SIDE_EFFECTS (captures[2]))
13659 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
13660 return res;
13661 }
13662 }
13663 }
13664 }
13665 }
13666 break;
13667 }
13668 default:;
13669 }
13670 break;
13671 }
13672 default:;
13673 }
13674 switch (TREE_CODE (op1))
13675 {
13676 CASE_CONVERT:
13677 {
13678 tree o40 = TREE_OPERAND (op1, 0);
13679 switch (TREE_CODE (o40))
13680 {
13681 case PLUS_EXPR:
13682 {
13683 tree o50 = TREE_OPERAND (o40, 0);
13684 tree o51 = TREE_OPERAND (o40, 1);
13685 if (o50 == o20 || operand_equal_p (o50, o20, 0))
13686 {
13687 {
13688/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13689 tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
13690/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13691 if (!TYPE_SATURATING (type))
13692 {
13693/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13694 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13695 {
13696/* #line 1292 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13697 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
13698 {
13699 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1309, %s:%d\n", __FILE__, __LINE__);
13700 tree res_op0;
13701 {
13702 tree ops1[1], res;
13703 ops1[0] = captures[1];
13704 if (TREE_TYPE (ops1[0]) != type)
13705 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13706 else
13707 res = ops1[0];
13708 res_op0 = res;
13709 }
13710 tree res;
13711 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13712 if (TREE_SIDE_EFFECTS (captures[2]))
13713 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
13714 return res;
13715 }
13716 }
13717 }
13718 }
13719 }
13720 break;
13721 }
13722 case POINTER_PLUS_EXPR:
13723 {
13724 tree o50 = TREE_OPERAND (o40, 0);
13725 tree o51 = TREE_OPERAND (o40, 1);
13726 if (o50 == o20 || operand_equal_p (o50, o20, 0))
13727 {
13728 {
13729/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13730 tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
13731/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13732 if (!TYPE_SATURATING (type))
13733 {
13734/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13735 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13736 {
13737/* #line 1292 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13738 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
13739 {
13740 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1309, %s:%d\n", __FILE__, __LINE__);
13741 tree res_op0;
13742 {
13743 tree ops1[1], res;
13744 ops1[0] = captures[1];
13745 if (TREE_TYPE (ops1[0]) != type)
13746 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13747 else
13748 res = ops1[0];
13749 res_op0 = res;
13750 }
13751 tree res;
13752 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13753 if (TREE_SIDE_EFFECTS (captures[2]))
13754 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
13755 return res;
13756 }
13757 }
13758 }
13759 }
13760 }
13761 break;
13762 }
13763 default:;
13764 }
13765 break;
13766 }
13767 default:;
13768 }
13769 switch (TREE_CODE (o20))
13770 {
13771 case PLUS_EXPR:
13772 {
13773 tree o30 = TREE_OPERAND (o20, 0);
13774 tree o31 = TREE_OPERAND (o20, 1);
13775 switch (TREE_CODE (op1))
13776 {
13777 CASE_CONVERT:
13778 {
13779 tree o60 = TREE_OPERAND (op1, 0);
13780 switch (TREE_CODE (o60))
13781 {
13782 case PLUS_EXPR:
13783 {
13784 tree o70 = TREE_OPERAND (o60, 0);
13785 tree o71 = TREE_OPERAND (o60, 1);
13786 if (o70 == o30 || operand_equal_p (o70, o30, 0))
13787 {
13788 {
13789/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13790 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
13791/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13792 if (!TYPE_SATURATING (type))
13793 {
13794/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13795 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13796 {
13797/* #line 1316 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13798 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0 && TREE_CODE (captures[2]) == INTEGER_CST && tree_int_cst_sign_bit (captures[2]) == 0))
13799 {
13800 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1335, %s:%d\n", __FILE__, __LINE__);
13801 tree res_op0;
13802 {
13803 tree ops1[1], res;
13804 ops1[0] = captures[1];
13805 if (TREE_TYPE (ops1[0]) != type)
13806 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13807 else
13808 res = ops1[0];
13809 res_op0 = res;
13810 }
13811 tree res_op1;
13812 {
13813 tree ops1[1], res;
13814 ops1[0] = captures[2];
13815 if (TREE_TYPE (ops1[0]) != type)
13816 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13817 else
13818 res = ops1[0];
13819 res_op1 = res;
13820 }
13821 tree res;
13822 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
13823 if (TREE_SIDE_EFFECTS (captures[3]))
13824 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
13825 return res;
13826 }
13827 }
13828 }
13829 }
13830 }
13831 break;
13832 }
13833 default:;
13834 }
13835 break;
13836 }
13837 default:;
13838 }
13839 break;
13840 }
13841 case POINTER_PLUS_EXPR:
13842 {
13843 tree o30 = TREE_OPERAND (o20, 0);
13844 tree o31 = TREE_OPERAND (o20, 1);
13845 switch (TREE_CODE (op1))
13846 {
13847 CASE_CONVERT:
13848 {
13849 tree o60 = TREE_OPERAND (op1, 0);
13850 switch (TREE_CODE (o60))
13851 {
13852 case POINTER_PLUS_EXPR:
13853 {
13854 tree o70 = TREE_OPERAND (o60, 0);
13855 tree o71 = TREE_OPERAND (o60, 1);
13856 if (o70 == o30 || operand_equal_p (o70, o30, 0))
13857 {
13858 {
13859/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13860 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
13861/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13862 if (!TYPE_SATURATING (type))
13863 {
13864/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13865 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13866 {
13867/* #line 1316 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13868 if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0 && TREE_CODE (captures[2]) == INTEGER_CST && tree_int_cst_sign_bit (captures[2]) == 0))
13869 {
13870 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1335, %s:%d\n", __FILE__, __LINE__);
13871 tree res_op0;
13872 {
13873 tree ops1[1], res;
13874 ops1[0] = captures[1];
13875 if (TREE_TYPE (ops1[0]) != type)
13876 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13877 else
13878 res = ops1[0];
13879 res_op0 = res;
13880 }
13881 tree res_op1;
13882 {
13883 tree ops1[1], res;
13884 ops1[0] = captures[2];
13885 if (TREE_TYPE (ops1[0]) != type)
13886 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
13887 else
13888 res = ops1[0];
13889 res_op1 = res;
13890 }
13891 tree res;
13892 res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
13893 if (TREE_SIDE_EFFECTS (captures[3]))
13894 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
13895 return res;
13896 }
13897 }
13898 }
13899 }
13900 }
13901 break;
13902 }
13903 default:;
13904 }
13905 break;
13906 }
13907 default:;
13908 }
13909 break;
13910 }
13911 default:;
13912 }
13913 break;
13914 }
13915 case NEGATE_EXPR:
13916 {
13917 tree o20 = TREE_OPERAND (op0, 0);
13918 if (integer_each_onep (op1))
13919 {
13920 {
13921/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13922 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
13923 tree res = generic_simplify_76 (loc, type, op0, op1, captures);
13924 if (res) return res;
13925 }
13926 }
13927 break;
13928 }
13929 default:;
13930 }
13931if (CONSTANT_CLASS_P (op0))
13932 {
13933 switch (TREE_CODE (op1))
13934 {
13935 case MINUS_EXPR:
13936 {
13937 tree o30 = TREE_OPERAND (op1, 0);
13938 tree o31 = TREE_OPERAND (op1, 1);
13939 if (CONSTANT_CLASS_P (o30))
13940 {
13941 {
13942/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13943 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
13944/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13945 if (!TYPE_SATURATING (type))
13946 {
13947/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13948 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13949 {
13950 {
13951/* #line 1235 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13952 tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
13953/* #line 1236 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13954 if (cst && !TREE_OVERFLOW (cst))
13955 {
13956 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
13957 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
13958 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1237, %s:%d\n", __FILE__, __LINE__);
13959 tree res_op0;
13960 res_op0 = cst;
13961 tree res_op1;
13962 res_op1 = captures[2];
13963 tree res;
13964 res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
13965 return res;
13966 }
13967 }
13968 }
13969 }
13970 }
13971 }
13972 break;
13973 }
13974 default:;
13975 }
13976 }
13977if (integer_all_onesp (op0))
13978 {
13979 {
13980/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13981 tree captures[1] ATTRIBUTE_UNUSED = { op1 };
13982/* #line 1147 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13983 if (!TYPE_SATURATING (type))
13984 {
13985/* #line 1186 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
13986 if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
13987 {
13988 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
13989 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1261, %s:%d\n", __FILE__, __LINE__);
13990 tree res_op0;
13991 res_op0 = captures[0];
13992 tree res;
13993 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
13994 return res;
13995 }
13996 }
13997 }
13998 }
13999if (integer_zerop (op0))
14000 {
14001 {
14002/* #line 1909 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14003 tree captures[1] ATTRIBUTE_UNUSED = { op1 };
14004 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
14005 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1909, %s:%d\n", __FILE__, __LINE__);
14006 tree res_op0;
14007 res_op0 = captures[0];
14008 tree res;
14009 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
14010 return res;
14011 }
14012 }
14013if (real_zerop (op0))
14014 {
14015 {
14016/* #line 1916 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14017 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
14018/* #line 1916 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14019 if (fold_real_zero_addition_p (type, captures[0], 0))
14020 {
14021 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1917, %s:%d\n", __FILE__, __LINE__);
14022 tree res_op0;
14023 res_op0 = captures[1];
14024 tree res;
14025 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
14026 if (TREE_SIDE_EFFECTS (captures[0]))
14027 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
14028 return res;
14029 }
14030 }
14031 }
14032 switch (TREE_CODE (op1))
14033 {
14034 case VIEW_CONVERT_EXPR:
14035 {
14036 tree o30 = TREE_OPERAND (op1, 0);
14037 switch (TREE_CODE (o30))
14038 {
14039 case VEC_COND_EXPR:
14040 {
14041 tree o40 = TREE_OPERAND (o30, 0);
14042 tree o41 = TREE_OPERAND (o30, 1);
14043 tree o42 = TREE_OPERAND (o30, 2);
14044 if (integer_each_onep (o41))
14045 {
14046 if (integer_zerop (o42))
14047 {
14048 {
14049/* #line 2245 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14050 tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
14051 tree res = generic_simplify_149 (loc, type, op0, op1, captures);
14052 if (res) return res;
14053 }
14054 }
14055 }
14056 break;
14057 }
14058 default:;
14059 }
14060 break;
14061 }
14062 case VEC_COND_EXPR:
14063 {
14064 tree o30 = TREE_OPERAND (op1, 0);
14065 tree o31 = TREE_OPERAND (op1, 1);
14066 tree o32 = TREE_OPERAND (op1, 2);
14067 if (integer_each_onep (o31))
14068 {
14069 if (integer_zerop (o32))
14070 {
14071 {
14072/* #line 2245 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14073 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
14074 tree res = generic_simplify_149 (loc, type, op0, op1, captures);
14075 if (res) return res;
14076 }
14077 }
14078 }
14079 break;
14080 }
14081 default:;
14082 }
14083 return NULL_TREE;
14084}
14085
14086static tree
14087generic_simplify_BIT_IOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
14088{
14089 if (integer_zerop (op1))
14090 {
14091 {
14092/* #line 84 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14093 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
14094 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
14095 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__);
14096 tree res_op0;
14097 res_op0 = captures[0];
14098 tree res;
14099 res = non_lvalue_loc (loc, res_op0);
14100 return res;
14101 }
14102 }
14103 switch (TREE_CODE (op0))
14104 {
14105 case NE_EXPR:
14106 {
14107 tree o20 = TREE_OPERAND (op0, 0);
14108 tree o21 = TREE_OPERAND (op0, 1);
14109 if (integer_zerop (o21))
14110 {
14111 switch (TREE_CODE (op1))
14112 {
14113 case NE_EXPR:
14114 {
14115 tree o50 = TREE_OPERAND (op1, 0);
14116 tree o51 = TREE_OPERAND (op1, 1);
14117 if (integer_zerop (o51))
14118 {
14119 {
14120/* #line 549 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14121 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
14122 tree res = generic_simplify_36 (loc, type, op0, op1, captures, BIT_IOR_EXPR, NE_EXPR);
14123 if (res) return res;
14124 }
14125 }
14126 break;
14127 }
14128 default:;
14129 }
14130 }
14131 break;
14132 }
14133 case BIT_AND_EXPR:
14134 {
14135 tree o20 = TREE_OPERAND (op0, 0);
14136 tree o21 = TREE_OPERAND (op0, 1);
14137 switch (TREE_CODE (o21))
14138 {
14139 case BIT_NOT_EXPR:
14140 {
14141 tree o40 = TREE_OPERAND (o21, 0);
14142 switch (TREE_CODE (op1))
14143 {
14144 case BIT_AND_EXPR:
14145 {
14146 tree o60 = TREE_OPERAND (op1, 0);
14147 tree o61 = TREE_OPERAND (op1, 1);
14148 switch (TREE_CODE (o60))
14149 {
14150 case BIT_NOT_EXPR:
14151 {
14152 tree o70 = TREE_OPERAND (o60, 0);
14153 if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
14154 {
14155 if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
14156 {
14157 {
14158/* #line 571 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14159 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
14160 tree res = generic_simplify_45 (loc, type, op0, op1, captures);
14161 if (res) return res;
14162 }
14163 }
14164 }
14165 break;
14166 }
14167 default:;
14168 }
14169 if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
14170 {
14171 switch (TREE_CODE (o61))
14172 {
14173 case BIT_NOT_EXPR:
14174 {
14175 tree o80 = TREE_OPERAND (o61, 0);
14176 if (o80 == o20 || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
14177 {
14178 {
14179/* #line 571 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14180 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
14181 tree res = generic_simplify_45 (loc, type, op0, op1, captures);
14182 if (res) return res;
14183 }
14184 }
14185 break;
14186 }
14187 default:;
14188 }
14189 }
14190 break;
14191 }
14192 default:;
14193 }
14194 break;
14195 }
14196 default:;
14197 }
14198 switch (TREE_CODE (o20))
14199 {
14200 case BIT_NOT_EXPR:
14201 {
14202 tree o30 = TREE_OPERAND (o20, 0);
14203 switch (TREE_CODE (op1))
14204 {
14205 case BIT_AND_EXPR:
14206 {
14207 tree o60 = TREE_OPERAND (op1, 0);
14208 tree o61 = TREE_OPERAND (op1, 1);
14209 switch (TREE_CODE (o60))
14210 {
14211 case BIT_NOT_EXPR:
14212 {
14213 tree o70 = TREE_OPERAND (o60, 0);
14214 if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
14215 {
14216 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
14217 {
14218 {
14219/* #line 571 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14220 tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
14221 tree res = generic_simplify_45 (loc, type, op0, op1, captures);
14222 if (res) return res;
14223 }
14224 }
14225 }
14226 break;
14227 }
14228 default:;
14229 }
14230 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
14231 {
14232 switch (TREE_CODE (o61))
14233 {
14234 case BIT_NOT_EXPR:
14235 {
14236 tree o80 = TREE_OPERAND (o61, 0);
14237 if (o80 == o21 || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
14238 {
14239 {
14240/* #line 571 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14241 tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
14242 tree res = generic_simplify_45 (loc, type, op0, op1, captures);
14243 if (res) return res;
14244 }
14245 }
14246 break;
14247 }
14248 default:;
14249 }
14250 }
14251 break;
14252 }
14253 default:;
14254 }
14255 break;
14256 }
14257 default:;
14258 }
14259 switch (TREE_CODE (o21))
14260 {
14261 case INTEGER_CST:
14262 {
14263 switch (TREE_CODE (op1))
14264 {
14265 case BIT_AND_EXPR:
14266 {
14267 tree o50 = TREE_OPERAND (op1, 0);
14268 tree o51 = TREE_OPERAND (op1, 1);
14269 switch (TREE_CODE (o50))
14270 {
14271 case BIT_NOT_EXPR:
14272 {
14273 tree o60 = TREE_OPERAND (o50, 0);
14274 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
14275 {
14276 switch (TREE_CODE (o51))
14277 {
14278 case INTEGER_CST:
14279 {
14280 {
14281/* #line 574 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14282 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
14283 tree res = generic_simplify_178 (loc, type, op0, op1, captures);
14284 if (res) return res;
14285 }
14286 break;
14287 }
14288 default:;
14289 }
14290 }
14291 break;
14292 }
14293 default:;
14294 }
14295 break;
14296 }
14297 default:;
14298 }
14299 break;
14300 }
14301 default:;
14302 }
14303 switch (TREE_CODE (o20))
14304 {
14305 case BIT_NOT_EXPR:
14306 {
14307 tree o30 = TREE_OPERAND (o20, 0);
14308 switch (TREE_CODE (o21))
14309 {
14310 case INTEGER_CST:
14311 {
14312 switch (TREE_CODE (op1))
14313 {
14314 case BIT_AND_EXPR:
14315 {
14316 tree o60 = TREE_OPERAND (op1, 0);
14317 tree o61 = TREE_OPERAND (op1, 1);
14318 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
14319 {
14320 switch (TREE_CODE (o61))
14321 {
14322 case INTEGER_CST:
14323 {
14324 {
14325/* #line 574 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14326 tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
14327 tree res = generic_simplify_178 (loc, type, op0, op1, captures);
14328 if (res) return res;
14329 }
14330 break;
14331 }
14332 default:;
14333 }
14334 }
14335 break;
14336 }
14337 default:;
14338 }
14339 break;
14340 }
14341 default:;
14342 }
14343 break;
14344 }
14345 default:;
14346 }
14347 break;
14348 }
14349 case BIT_XOR_EXPR:
14350 {
14351 tree o20 = TREE_OPERAND (op0, 0);
14352 tree o21 = TREE_OPERAND (op0, 1);
14353 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
14354 {
14355 {
14356/* #line 580 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14357 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
14358 tree res = generic_simplify_115 (loc, type, op0, op1, captures);
14359 if (res) return res;
14360 }
14361 }
14362 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
14363 {
14364 {
14365/* #line 580 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14366 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
14367 tree res = generic_simplify_115 (loc, type, op0, op1, captures);
14368 if (res) return res;
14369 }
14370 }
14371 break;
14372 }
14373 default:;
14374 }
14375 switch (TREE_CODE (op1))
14376 {
14377 case BIT_XOR_EXPR:
14378 {
14379 tree o30 = TREE_OPERAND (op1, 0);
14380 tree o31 = TREE_OPERAND (op1, 1);
14381 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
14382 {
14383 {
14384/* #line 580 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14385 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
14386 tree res = generic_simplify_115 (loc, type, op0, op1, captures);
14387 if (res) return res;
14388 }
14389 }
14390 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
14391 {
14392 {
14393/* #line 580 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14394 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
14395 tree res = generic_simplify_115 (loc, type, op0, op1, captures);
14396 if (res) return res;
14397 }
14398 }
14399 break;
14400 }
14401 default:;
14402 }
14403if (integer_all_onesp (op1))
14404 {
14405 {
14406/* #line 606 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14407 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
14408 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:606, %s:%d\n", __FILE__, __LINE__);
14409 tree res;
14410 res = captures[1];
14411 if (TREE_SIDE_EFFECTS (captures[0]))
14412 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
14413 return res;
14414 }
14415 }
14416if (integer_zerop (op1))
14417 {
14418 {
14419/* #line 611 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14420 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
14421 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
14422 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:611, %s:%d\n", __FILE__, __LINE__);
14423 tree res;
14424 res = captures[0];
14425 return res;
14426 }
14427 }
14428 switch (TREE_CODE (op0))
14429 {
14430 CASE_CONVERT:
14431 {
14432 tree o20 = TREE_OPERAND (op0, 0);
14433 switch (TREE_CODE (op1))
14434 {
14435 CASE_CONVERT:
14436 {
14437 tree o40 = TREE_OPERAND (op1, 0);
14438 switch (TREE_CODE (o40))
14439 {
14440 case BIT_NOT_EXPR:
14441 {
14442 tree o50 = TREE_OPERAND (o40, 0);
14443 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
14444 {
14445 {
14446/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14447 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
14448 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14449 if (res) return res;
14450 }
14451 }
14452 break;
14453 }
14454 default:;
14455 }
14456 break;
14457 }
14458 default:;
14459 }
14460 switch (TREE_CODE (o20))
14461 {
14462 case BIT_NOT_EXPR:
14463 {
14464 tree o30 = TREE_OPERAND (o20, 0);
14465 switch (TREE_CODE (op1))
14466 {
14467 CASE_CONVERT:
14468 {
14469 tree o50 = TREE_OPERAND (op1, 0);
14470 if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
14471 {
14472 {
14473/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14474 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
14475 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14476 if (res) return res;
14477 }
14478 }
14479 break;
14480 }
14481 default:;
14482 }
14483 break;
14484 }
14485 default:;
14486 }
14487 break;
14488 }
14489 default:;
14490 }
14491 switch (TREE_CODE (op1))
14492 {
14493 case BIT_NOT_EXPR:
14494 {
14495 tree o30 = TREE_OPERAND (op1, 0);
14496 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
14497 {
14498 {
14499/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14500 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
14501 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14502 if (res) return res;
14503 }
14504 }
14505 break;
14506 }
14507 default:;
14508 }
14509 switch (TREE_CODE (op0))
14510 {
14511 case BIT_NOT_EXPR:
14512 {
14513 tree o20 = TREE_OPERAND (op0, 0);
14514 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
14515 {
14516 {
14517/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14518 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
14519 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14520 if (res) return res;
14521 }
14522 }
14523 break;
14524 }
14525 default:;
14526 }
14527 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
14528 {
14529 {
14530/* #line 645 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14531 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
14532 tree res = generic_simplify_57 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14533 if (res) return res;
14534 }
14535 }
14536 switch (TREE_CODE (op1))
14537 {
14538 case BIT_NOT_EXPR:
14539 {
14540 tree o30 = TREE_OPERAND (op1, 0);
14541 switch (TREE_CODE (o30))
14542 {
14543 case BIT_IOR_EXPR:
14544 {
14545 tree o40 = TREE_OPERAND (o30, 0);
14546 tree o41 = TREE_OPERAND (o30, 1);
14547 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
14548 {
14549 {
14550/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14551 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
14552 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14553 if (res) return res;
14554 }
14555 }
14556 if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
14557 {
14558 {
14559/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14560 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
14561 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14562 if (res) return res;
14563 }
14564 }
14565 break;
14566 }
14567 default:;
14568 }
14569 break;
14570 }
14571 default:;
14572 }
14573 switch (TREE_CODE (op0))
14574 {
14575 case BIT_NOT_EXPR:
14576 {
14577 tree o20 = TREE_OPERAND (op0, 0);
14578 switch (TREE_CODE (o20))
14579 {
14580 case BIT_IOR_EXPR:
14581 {
14582 tree o30 = TREE_OPERAND (o20, 0);
14583 tree o31 = TREE_OPERAND (o20, 1);
14584 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
14585 {
14586 {
14587/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14588 tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
14589 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14590 if (res) return res;
14591 }
14592 }
14593 if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
14594 {
14595 {
14596/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14597 tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
14598 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14599 if (res) return res;
14600 }
14601 }
14602 break;
14603 }
14604 default:;
14605 }
14606 switch (TREE_CODE (op1))
14607 {
14608 case BIT_AND_EXPR:
14609 {
14610 tree o40 = TREE_OPERAND (op1, 0);
14611 tree o41 = TREE_OPERAND (op1, 1);
14612 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
14613 {
14614 {
14615/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14616 tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
14617 tree res = generic_simplify_65 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14618 if (res) return res;
14619 }
14620 }
14621 if (o41 == o20 || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
14622 {
14623 {
14624/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14625 tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
14626 tree res = generic_simplify_65 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14627 if (res) return res;
14628 }
14629 }
14630 break;
14631 }
14632 CASE_CONVERT:
14633 {
14634 tree o40 = TREE_OPERAND (op1, 0);
14635 switch (TREE_CODE (o40))
14636 {
14637 case BIT_NOT_EXPR:
14638 {
14639 tree o50 = TREE_OPERAND (o40, 0);
14640 {
14641/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14642 tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
14643 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14644 if (res) return res;
14645 }
14646 break;
14647 }
14648 default:;
14649 }
14650 break;
14651 }
14652 case BIT_NOT_EXPR:
14653 {
14654 tree o40 = TREE_OPERAND (op1, 0);
14655 {
14656/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14657 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
14658 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14659 if (res) return res;
14660 }
14661 break;
14662 }
14663 default:;
14664 }
14665 break;
14666 }
14667 case BIT_AND_EXPR:
14668 {
14669 tree o20 = TREE_OPERAND (op0, 0);
14670 tree o21 = TREE_OPERAND (op0, 1);
14671 switch (TREE_CODE (op1))
14672 {
14673 case BIT_NOT_EXPR:
14674 {
14675 tree o50 = TREE_OPERAND (op1, 0);
14676 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
14677 {
14678 {
14679/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14680 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
14681 tree res = generic_simplify_211 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14682 if (res) return res;
14683 }
14684 }
14685 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
14686 {
14687 {
14688/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14689 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
14690 tree res = generic_simplify_211 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14691 if (res) return res;
14692 }
14693 }
14694 break;
14695 }
14696 case BIT_XOR_EXPR:
14697 {
14698 tree o50 = TREE_OPERAND (op1, 0);
14699 tree o51 = TREE_OPERAND (op1, 1);
14700 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
14701 {
14702 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
14703 {
14704 {
14705/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14706 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
14707 tree res = generic_simplify_68 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14708 if (res) return res;
14709 }
14710 }
14711 }
14712 break;
14713 }
14714 case BIT_AND_EXPR:
14715 {
14716 tree o50 = TREE_OPERAND (op1, 0);
14717 tree o51 = TREE_OPERAND (op1, 1);
14718 if (o50 == o20 || operand_equal_p (o50, o20, 0))
14719 {
14720 {
14721/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14722 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
14723 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14724 if (res) return res;
14725 }
14726 }
14727 if (o51 == o20 || operand_equal_p (o51, o20, 0))
14728 {
14729 {
14730/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14731 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
14732 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14733 if (res) return res;
14734 }
14735 }
14736 if (o50 == o21 || operand_equal_p (o50, o21, 0))
14737 {
14738 {
14739/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14740 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
14741 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14742 if (res) return res;
14743 }
14744 }
14745 if (o51 == o21 || operand_equal_p (o51, o21, 0))
14746 {
14747 {
14748/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14749 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
14750 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14751 if (res) return res;
14752 }
14753 }
14754 break;
14755 }
14756 default:;
14757 }
14758 break;
14759 }
14760 case BIT_XOR_EXPR:
14761 {
14762 tree o20 = TREE_OPERAND (op0, 0);
14763 tree o21 = TREE_OPERAND (op0, 1);
14764 switch (TREE_CODE (op1))
14765 {
14766 case BIT_AND_EXPR:
14767 {
14768 tree o50 = TREE_OPERAND (op1, 0);
14769 tree o51 = TREE_OPERAND (op1, 1);
14770 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
14771 {
14772 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
14773 {
14774 {
14775/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14776 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
14777 tree res = generic_simplify_68 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14778 if (res) return res;
14779 }
14780 }
14781 }
14782 break;
14783 }
14784 default:;
14785 }
14786 break;
14787 }
14788 CASE_CONVERT:
14789 {
14790 tree o20 = TREE_OPERAND (op0, 0);
14791 switch (TREE_CODE (o20))
14792 {
14793 case BIT_NOT_EXPR:
14794 {
14795 tree o30 = TREE_OPERAND (o20, 0);
14796 switch (TREE_CODE (op1))
14797 {
14798 CASE_CONVERT:
14799 {
14800 tree o50 = TREE_OPERAND (op1, 0);
14801 switch (TREE_CODE (o50))
14802 {
14803 case BIT_NOT_EXPR:
14804 {
14805 tree o60 = TREE_OPERAND (o50, 0);
14806 {
14807/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14808 tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
14809 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14810 if (res) return res;
14811 }
14812 break;
14813 }
14814 default:;
14815 }
14816 break;
14817 }
14818 case BIT_NOT_EXPR:
14819 {
14820 tree o50 = TREE_OPERAND (op1, 0);
14821 {
14822/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14823 tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
14824 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14825 if (res) return res;
14826 }
14827 break;
14828 }
14829 default:;
14830 }
14831 break;
14832 }
14833 case BIT_AND_EXPR:
14834 {
14835 tree o30 = TREE_OPERAND (o20, 0);
14836 tree o31 = TREE_OPERAND (o20, 1);
14837 switch (TREE_CODE (op1))
14838 {
14839 CASE_CONVERT:
14840 {
14841 tree o60 = TREE_OPERAND (op1, 0);
14842 switch (TREE_CODE (o60))
14843 {
14844 case BIT_AND_EXPR:
14845 {
14846 tree o70 = TREE_OPERAND (o60, 0);
14847 tree o71 = TREE_OPERAND (o60, 1);
14848 if (o70 == o30 || operand_equal_p (o70, o30, 0))
14849 {
14850 {
14851/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14852 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
14853 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14854 if (res) return res;
14855 }
14856 }
14857 if (o71 == o30 || operand_equal_p (o71, o30, 0))
14858 {
14859 {
14860/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14861 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
14862 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14863 if (res) return res;
14864 }
14865 }
14866 if (o70 == o31 || operand_equal_p (o70, o31, 0))
14867 {
14868 {
14869/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14870 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
14871 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14872 if (res) return res;
14873 }
14874 }
14875 if (o71 == o31 || operand_equal_p (o71, o31, 0))
14876 {
14877 {
14878/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14879 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
14880 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
14881 if (res) return res;
14882 }
14883 }
14884 break;
14885 }
14886 default:;
14887 }
14888 break;
14889 }
14890 default:;
14891 }
14892 break;
14893 }
14894 case BIT_IOR_EXPR:
14895 {
14896 tree o30 = TREE_OPERAND (o20, 0);
14897 tree o31 = TREE_OPERAND (o20, 1);
14898 switch (TREE_CODE (op1))
14899 {
14900 CASE_CONVERT:
14901 {
14902 tree o60 = TREE_OPERAND (op1, 0);
14903 if (o60 == o31 || operand_equal_p (o60, o31, 0))
14904 {
14905 {
14906/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14907 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
14908 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14909 if (res) return res;
14910 }
14911 }
14912 if (o60 == o30 || operand_equal_p (o60, o30, 0))
14913 {
14914 {
14915/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14916 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
14917 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14918 if (res) return res;
14919 }
14920 }
14921 break;
14922 }
14923 default:;
14924 }
14925 break;
14926 }
14927 default:;
14928 }
14929 switch (TREE_CODE (op1))
14930 {
14931 CASE_CONVERT:
14932 {
14933 tree o40 = TREE_OPERAND (op1, 0);
14934 switch (TREE_CODE (o40))
14935 {
14936 case BIT_IOR_EXPR:
14937 {
14938 tree o50 = TREE_OPERAND (o40, 0);
14939 tree o51 = TREE_OPERAND (o40, 1);
14940 if (o51 == o20 || operand_equal_p (o51, o20, 0))
14941 {
14942 {
14943/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14944 tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
14945 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14946 if (res) return res;
14947 }
14948 }
14949 if (o50 == o20 || operand_equal_p (o50, o20, 0))
14950 {
14951 {
14952/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14953 tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
14954 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14955 if (res) return res;
14956 }
14957 }
14958 break;
14959 }
14960 default:;
14961 }
14962 break;
14963 }
14964 default:;
14965 }
14966 switch (TREE_CODE (o20))
14967 {
14968 case BIT_IOR_EXPR:
14969 {
14970 tree o30 = TREE_OPERAND (o20, 0);
14971 tree o31 = TREE_OPERAND (o20, 1);
14972 if (op1 == o31 || operand_equal_p (op1, o31, 0))
14973 {
14974 {
14975/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14976 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
14977 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14978 if (res) return res;
14979 }
14980 }
14981 if (op1 == o30 || operand_equal_p (op1, o30, 0))
14982 {
14983 {
14984/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
14985 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
14986 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
14987 if (res) return res;
14988 }
14989 }
14990 break;
14991 }
14992 default:;
14993 }
14994 break;
14995 }
14996 default:;
14997 }
14998 switch (TREE_CODE (op1))
14999 {
15000 CASE_CONVERT:
15001 {
15002 tree o30 = TREE_OPERAND (op1, 0);
15003 switch (TREE_CODE (o30))
15004 {
15005 case BIT_IOR_EXPR:
15006 {
15007 tree o40 = TREE_OPERAND (o30, 0);
15008 tree o41 = TREE_OPERAND (o30, 1);
15009 if (o41 == op0 || operand_equal_p (o41, op0, 0))
15010 {
15011 {
15012/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15013 tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
15014 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15015 if (res) return res;
15016 }
15017 }
15018 if (o40 == op0 || operand_equal_p (o40, op0, 0))
15019 {
15020 {
15021/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15022 tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
15023 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15024 if (res) return res;
15025 }
15026 }
15027 break;
15028 }
15029 default:;
15030 }
15031 break;
15032 }
15033 default:;
15034 }
15035 switch (TREE_CODE (op0))
15036 {
15037 case BIT_IOR_EXPR:
15038 {
15039 tree o20 = TREE_OPERAND (op0, 0);
15040 tree o21 = TREE_OPERAND (op0, 1);
15041 switch (TREE_CODE (op1))
15042 {
15043 CASE_CONVERT:
15044 {
15045 tree o50 = TREE_OPERAND (op1, 0);
15046 if (o50 == o21 || operand_equal_p (o50, o21, 0))
15047 {
15048 {
15049/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15050 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
15051 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15052 if (res) return res;
15053 }
15054 }
15055 if (o50 == o20 || operand_equal_p (o50, o20, 0))
15056 {
15057 {
15058/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15059 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
15060 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15061 if (res) return res;
15062 }
15063 }
15064 break;
15065 }
15066 default:;
15067 }
15068 if (op1 == o21 || operand_equal_p (op1, o21, 0))
15069 {
15070 {
15071/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15072 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
15073 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15074 if (res) return res;
15075 }
15076 }
15077 if (op1 == o20 || operand_equal_p (op1, o20, 0))
15078 {
15079 {
15080/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15081 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
15082 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15083 if (res) return res;
15084 }
15085 }
15086 break;
15087 }
15088 CASE_CONVERT:
15089 {
15090 tree o20 = TREE_OPERAND (op0, 0);
15091 switch (TREE_CODE (op1))
15092 {
15093 case BIT_IOR_EXPR:
15094 {
15095 tree o40 = TREE_OPERAND (op1, 0);
15096 tree o41 = TREE_OPERAND (op1, 1);
15097 if (o41 == o20 || operand_equal_p (o41, o20, 0))
15098 {
15099 {
15100/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15101 tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
15102 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15103 if (res) return res;
15104 }
15105 }
15106 if (o40 == o20 || operand_equal_p (o40, o20, 0))
15107 {
15108 {
15109/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15110 tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
15111 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15112 if (res) return res;
15113 }
15114 }
15115 break;
15116 }
15117 default:;
15118 }
15119 break;
15120 }
15121 default:;
15122 }
15123 switch (TREE_CODE (op1))
15124 {
15125 case BIT_IOR_EXPR:
15126 {
15127 tree o30 = TREE_OPERAND (op1, 0);
15128 tree o31 = TREE_OPERAND (op1, 1);
15129 if (o31 == op0 || operand_equal_p (o31, op0, 0))
15130 {
15131 {
15132/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15133 tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
15134 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15135 if (res) return res;
15136 }
15137 }
15138 if (o30 == op0 || operand_equal_p (o30, op0, 0))
15139 {
15140 {
15141/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15142 tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
15143 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15144 if (res) return res;
15145 }
15146 }
15147 break;
15148 }
15149 default:;
15150 }
15151 switch (TREE_CODE (op0))
15152 {
15153 CASE_CONVERT:
15154 {
15155 tree o20 = TREE_OPERAND (op0, 0);
15156 switch (TREE_CODE (o20))
15157 {
15158 case BIT_IOR_EXPR:
15159 {
15160 tree o30 = TREE_OPERAND (o20, 0);
15161 tree o31 = TREE_OPERAND (o20, 1);
15162 switch (TREE_CODE (op1))
15163 {
15164 CASE_CONVERT:
15165 {
15166 tree o60 = TREE_OPERAND (op1, 0);
15167 switch (TREE_CODE (o60))
15168 {
15169 case BIT_IOR_EXPR:
15170 {
15171 tree o70 = TREE_OPERAND (o60, 0);
15172 tree o71 = TREE_OPERAND (o60, 1);
15173 if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
15174 {
15175 {
15176/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15177 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
15178 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15179 if (res) return res;
15180 }
15181 }
15182 if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
15183 {
15184 {
15185/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15186 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
15187 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15188 if (res) return res;
15189 }
15190 }
15191 if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
15192 {
15193 {
15194/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15195 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
15196 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15197 if (res) return res;
15198 }
15199 }
15200 if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
15201 {
15202 {
15203/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15204 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
15205 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15206 if (res) return res;
15207 }
15208 }
15209 if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
15210 {
15211 {
15212/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15213 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o71, op0, o20, o31 };
15214 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15215 if (res) return res;
15216 }
15217 }
15218 if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
15219 {
15220 {
15221/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15222 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o71, op0, o20, o30 };
15223 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15224 if (res) return res;
15225 }
15226 }
15227 if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
15228 {
15229 {
15230/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15231 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o70, op0, o20, o31 };
15232 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15233 if (res) return res;
15234 }
15235 }
15236 if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
15237 {
15238 {
15239/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15240 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o70, op0, o20, o30 };
15241 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15242 if (res) return res;
15243 }
15244 }
15245 break;
15246 }
15247 default:;
15248 }
15249 break;
15250 }
15251 case BIT_IOR_EXPR:
15252 {
15253 tree o60 = TREE_OPERAND (op1, 0);
15254 tree o61 = TREE_OPERAND (op1, 1);
15255 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
15256 {
15257 {
15258/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15259 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
15260 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15261 if (res) return res;
15262 }
15263 }
15264 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
15265 {
15266 {
15267/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15268 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
15269 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15270 if (res) return res;
15271 }
15272 }
15273 if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
15274 {
15275 {
15276/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15277 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
15278 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15279 if (res) return res;
15280 }
15281 }
15282 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
15283 {
15284 {
15285/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15286 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
15287 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15288 if (res) return res;
15289 }
15290 }
15291 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
15292 {
15293 {
15294/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15295 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o61, op0, o20, o31 };
15296 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15297 if (res) return res;
15298 }
15299 }
15300 if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
15301 {
15302 {
15303/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15304 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o61, op0, o20, o30 };
15305 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15306 if (res) return res;
15307 }
15308 }
15309 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
15310 {
15311 {
15312/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15313 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o60, op0, o20, o31 };
15314 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15315 if (res) return res;
15316 }
15317 }
15318 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
15319 {
15320 {
15321/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15322 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o60, op0, o20, o30 };
15323 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15324 if (res) return res;
15325 }
15326 }
15327 break;
15328 }
15329 default:;
15330 }
15331 break;
15332 }
15333 default:;
15334 }
15335 switch (TREE_CODE (op1))
15336 {
15337 CASE_CONVERT:
15338 {
15339 tree o40 = TREE_OPERAND (op1, 0);
15340 {
15341/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15342 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
15343 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15344 if (res) return res;
15345 }
15346 break;
15347 }
15348 default:;
15349 }
15350 {
15351/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15352 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
15353 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15354 if (res) return res;
15355 }
15356 break;
15357 }
15358 case BIT_IOR_EXPR:
15359 {
15360 tree o20 = TREE_OPERAND (op0, 0);
15361 tree o21 = TREE_OPERAND (op0, 1);
15362 switch (TREE_CODE (op1))
15363 {
15364 CASE_CONVERT:
15365 {
15366 tree o50 = TREE_OPERAND (op1, 0);
15367 switch (TREE_CODE (o50))
15368 {
15369 case BIT_IOR_EXPR:
15370 {
15371 tree o60 = TREE_OPERAND (o50, 0);
15372 tree o61 = TREE_OPERAND (o50, 1);
15373 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
15374 {
15375 {
15376/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15377 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o61, op0, op0, o21 };
15378 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15379 if (res) return res;
15380 }
15381 }
15382 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
15383 {
15384 {
15385/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15386 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o61, op0, op0, o20 };
15387 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15388 if (res) return res;
15389 }
15390 }
15391 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
15392 {
15393 {
15394/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15395 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o60, op0, op0, o21 };
15396 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15397 if (res) return res;
15398 }
15399 }
15400 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
15401 {
15402 {
15403/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15404 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o60, op0, op0, o20 };
15405 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15406 if (res) return res;
15407 }
15408 }
15409 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
15410 {
15411 {
15412/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15413 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
15414 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15415 if (res) return res;
15416 }
15417 }
15418 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
15419 {
15420 {
15421/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15422 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
15423 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15424 if (res) return res;
15425 }
15426 }
15427 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
15428 {
15429 {
15430/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15431 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
15432 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15433 if (res) return res;
15434 }
15435 }
15436 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
15437 {
15438 {
15439/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15440 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
15441 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15442 if (res) return res;
15443 }
15444 }
15445 break;
15446 }
15447 default:;
15448 }
15449 break;
15450 }
15451 case BIT_IOR_EXPR:
15452 {
15453 tree o50 = TREE_OPERAND (op1, 0);
15454 tree o51 = TREE_OPERAND (op1, 1);
15455 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
15456 {
15457 {
15458/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15459 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
15460 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15461 if (res) return res;
15462 }
15463 }
15464 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
15465 {
15466 {
15467/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15468 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
15469 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15470 if (res) return res;
15471 }
15472 }
15473 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
15474 {
15475 {
15476/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15477 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
15478 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15479 if (res) return res;
15480 }
15481 }
15482 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
15483 {
15484 {
15485/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15486 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
15487 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15488 if (res) return res;
15489 }
15490 }
15491 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
15492 {
15493 {
15494/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15495 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o51, op0, op0, o21 };
15496 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15497 if (res) return res;
15498 }
15499 }
15500 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
15501 {
15502 {
15503/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15504 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o51, op0, op0, o20 };
15505 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15506 if (res) return res;
15507 }
15508 }
15509 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
15510 {
15511 {
15512/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15513 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o50, op0, op0, o21 };
15514 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15515 if (res) return res;
15516 }
15517 }
15518 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
15519 {
15520 {
15521/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15522 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o50, op0, op0, o20 };
15523 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15524 if (res) return res;
15525 }
15526 }
15527 break;
15528 }
15529 default:;
15530 }
15531 break;
15532 }
15533 case BIT_AND_EXPR:
15534 {
15535 tree o20 = TREE_OPERAND (op0, 0);
15536 tree o21 = TREE_OPERAND (op0, 1);
15537 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
15538 {
15539 {
15540/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15541 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
15542 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15543 if (res) return res;
15544 }
15545 }
15546 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
15547 {
15548 {
15549/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15550 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
15551 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15552 if (res) return res;
15553 }
15554 }
15555 break;
15556 }
15557 default:;
15558 }
15559 switch (TREE_CODE (op1))
15560 {
15561 case BIT_AND_EXPR:
15562 {
15563 tree o30 = TREE_OPERAND (op1, 0);
15564 tree o31 = TREE_OPERAND (op1, 1);
15565 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
15566 {
15567 {
15568/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15569 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
15570 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15571 if (res) return res;
15572 }
15573 }
15574 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
15575 {
15576 {
15577/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15578 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
15579 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15580 if (res) return res;
15581 }
15582 }
15583 break;
15584 }
15585 default:;
15586 }
15587 switch (TREE_CODE (op0))
15588 {
15589 case BIT_AND_EXPR:
15590 {
15591 tree o20 = TREE_OPERAND (op0, 0);
15592 tree o21 = TREE_OPERAND (op0, 1);
15593 switch (TREE_CODE (o20))
15594 {
15595 case BIT_NOT_EXPR:
15596 {
15597 tree o30 = TREE_OPERAND (o20, 0);
15598 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
15599 {
15600 {
15601/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15602 tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
15603 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15604 if (res) return res;
15605 }
15606 }
15607 break;
15608 }
15609 default:;
15610 }
15611 switch (TREE_CODE (o21))
15612 {
15613 case BIT_NOT_EXPR:
15614 {
15615 tree o40 = TREE_OPERAND (o21, 0);
15616 if (op1 == o40 || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
15617 {
15618 {
15619/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15620 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
15621 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15622 if (res) return res;
15623 }
15624 }
15625 break;
15626 }
15627 default:;
15628 }
15629 break;
15630 }
15631 default:;
15632 }
15633 switch (TREE_CODE (op1))
15634 {
15635 case BIT_AND_EXPR:
15636 {
15637 tree o30 = TREE_OPERAND (op1, 0);
15638 tree o31 = TREE_OPERAND (op1, 1);
15639 switch (TREE_CODE (o30))
15640 {
15641 case BIT_NOT_EXPR:
15642 {
15643 tree o40 = TREE_OPERAND (o30, 0);
15644 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
15645 {
15646 {
15647/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15648 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
15649 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15650 if (res) return res;
15651 }
15652 }
15653 break;
15654 }
15655 default:;
15656 }
15657 switch (TREE_CODE (o31))
15658 {
15659 case BIT_NOT_EXPR:
15660 {
15661 tree o50 = TREE_OPERAND (o31, 0);
15662 if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
15663 {
15664 {
15665/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15666 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
15667 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
15668 if (res) return res;
15669 }
15670 }
15671 break;
15672 }
15673 default:;
15674 }
15675 break;
15676 }
15677 default:;
15678 }
15679 switch (TREE_CODE (op0))
15680 {
15681 case BIT_IOR_EXPR:
15682 {
15683 tree o20 = TREE_OPERAND (op0, 0);
15684 tree o21 = TREE_OPERAND (op0, 1);
15685 if (CONSTANT_CLASS_P (o21))
15686 {
15687 if (CONSTANT_CLASS_P (op1))
15688 {
15689 {
15690/* #line 928 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15691 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
15692 tree res = generic_simplify_119 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
15693 if (res) return res;
15694 }
15695 }
15696 }
15697 break;
15698 }
15699 case BIT_AND_EXPR:
15700 {
15701 tree o20 = TREE_OPERAND (op0, 0);
15702 tree o21 = TREE_OPERAND (op0, 1);
15703 switch (TREE_CODE (o21))
15704 {
15705 case BIT_NOT_EXPR:
15706 {
15707 tree o40 = TREE_OPERAND (o21, 0);
15708 switch (TREE_CODE (op1))
15709 {
15710 case BIT_AND_EXPR:
15711 {
15712 tree o60 = TREE_OPERAND (op1, 0);
15713 tree o61 = TREE_OPERAND (op1, 1);
15714 if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
15715 {
15716 {
15717/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15718 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o60 };
15719 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15720 if (res) return res;
15721 }
15722 }
15723 if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
15724 {
15725 {
15726/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15727 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o61 };
15728 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15729 if (res) return res;
15730 }
15731 }
15732 break;
15733 }
15734 default:;
15735 }
15736 break;
15737 }
15738 default:;
15739 }
15740 switch (TREE_CODE (o20))
15741 {
15742 case BIT_NOT_EXPR:
15743 {
15744 tree o30 = TREE_OPERAND (o20, 0);
15745 switch (TREE_CODE (op1))
15746 {
15747 case BIT_AND_EXPR:
15748 {
15749 tree o60 = TREE_OPERAND (op1, 0);
15750 tree o61 = TREE_OPERAND (op1, 1);
15751 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
15752 {
15753 {
15754/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15755 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o60 };
15756 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15757 if (res) return res;
15758 }
15759 }
15760 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
15761 {
15762 {
15763/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15764 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o61 };
15765 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15766 if (res) return res;
15767 }
15768 }
15769 break;
15770 }
15771 default:;
15772 }
15773 break;
15774 }
15775 default:;
15776 }
15777 switch (TREE_CODE (op1))
15778 {
15779 case BIT_AND_EXPR:
15780 {
15781 tree o50 = TREE_OPERAND (op1, 0);
15782 tree o51 = TREE_OPERAND (op1, 1);
15783 switch (TREE_CODE (o51))
15784 {
15785 case BIT_NOT_EXPR:
15786 {
15787 tree o70 = TREE_OPERAND (o51, 0);
15788 if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
15789 {
15790 {
15791/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15792 tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o21, op0, o20 };
15793 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15794 if (res) return res;
15795 }
15796 }
15797 if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
15798 {
15799 {
15800/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15801 tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o20, op0, o21 };
15802 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15803 if (res) return res;
15804 }
15805 }
15806 break;
15807 }
15808 default:;
15809 }
15810 switch (TREE_CODE (o50))
15811 {
15812 case BIT_NOT_EXPR:
15813 {
15814 tree o60 = TREE_OPERAND (o50, 0);
15815 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
15816 {
15817 {
15818/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15819 tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o21, op0, o20 };
15820 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15821 if (res) return res;
15822 }
15823 }
15824 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
15825 {
15826 {
15827/* #line 1004 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15828 tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o20, op0, o21 };
15829 tree res = generic_simplify_138 (loc, type, op0, op1, captures);
15830 if (res) return res;
15831 }
15832 }
15833 break;
15834 }
15835 default:;
15836 }
15837 break;
15838 }
15839 default:;
15840 }
15841 break;
15842 }
15843 case BIT_XOR_EXPR:
15844 {
15845 tree o20 = TREE_OPERAND (op0, 0);
15846 tree o21 = TREE_OPERAND (op0, 1);
15847 switch (TREE_CODE (o21))
15848 {
15849 case INTEGER_CST:
15850 {
15851 switch (TREE_CODE (op1))
15852 {
15853 case INTEGER_CST:
15854 {
15855 {
15856/* #line 1054 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15857 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
15858 tree res = generic_simplify_192 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_IOR_EXPR);
15859 if (res) return res;
15860 }
15861 break;
15862 }
15863 default:;
15864 }
15865 break;
15866 }
15867 default:;
15868 }
15869 break;
15870 }
15871 case UNORDERED_EXPR:
15872 {
15873 tree o20 = TREE_OPERAND (op0, 0);
15874 tree o21 = TREE_OPERAND (op0, 1);
15875 if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
15876 {
15877 switch (TREE_CODE (op1))
15878 {
15879 case UNORDERED_EXPR:
15880 {
15881 tree o50 = TREE_OPERAND (op1, 0);
15882 tree o51 = TREE_OPERAND (op1, 1);
15883 if (o51 == o50 || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
15884 {
15885 {
15886/* #line 2617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15887 tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
15888/* #line 2617 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15889 if (types_match (captures[0], captures[1]))
15890 {
15891 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2618, %s:%d\n", __FILE__, __LINE__);
15892 tree res_op0;
15893 res_op0 = captures[0];
15894 tree res_op1;
15895 res_op1 = captures[1];
15896 tree res;
15897 res = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
15898 return res;
15899 }
15900 }
15901 }
15902 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
15903 {
15904 {
15905/* #line 2625 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15906 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
15907 tree res = generic_simplify_113 (loc, type, op0, op1, captures);
15908 if (res) return res;
15909 }
15910 }
15911 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
15912 {
15913 {
15914/* #line 2625 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15915 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
15916 tree res = generic_simplify_113 (loc, type, op0, op1, captures);
15917 if (res) return res;
15918 }
15919 }
15920 break;
15921 }
15922 default:;
15923 }
15924 }
15925 switch (TREE_CODE (op1))
15926 {
15927 case UNORDERED_EXPR:
15928 {
15929 tree o50 = TREE_OPERAND (op1, 0);
15930 tree o51 = TREE_OPERAND (op1, 1);
15931 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
15932 {
15933 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
15934 {
15935 {
15936/* #line 2625 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15937 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
15938 tree res = generic_simplify_27 (loc, type, op0, op1, captures);
15939 if (res) return res;
15940 }
15941 }
15942 }
15943 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
15944 {
15945 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
15946 {
15947 {
15948/* #line 2625 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15949 tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
15950 tree res = generic_simplify_27 (loc, type, op0, op1, captures);
15951 if (res) return res;
15952 }
15953 }
15954 }
15955 break;
15956 }
15957 default:;
15958 }
15959 break;
15960 }
15961 case LT_EXPR:
15962 {
15963 tree o20 = TREE_OPERAND (op0, 0);
15964 tree o21 = TREE_OPERAND (op0, 1);
15965 switch (TREE_CODE (op1))
15966 {
15967 case GE_EXPR:
15968 {
15969 tree o50 = TREE_OPERAND (op1, 0);
15970 tree o51 = TREE_OPERAND (op1, 1);
15971 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
15972 {
15973 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
15974 {
15975 {
15976/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
15977 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
15978 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
15979 if (res) return res;
15980 }
15981 }
15982 }
15983 break;
15984 }
15985 default:;
15986 }
15987 break;
15988 }
15989 case LE_EXPR:
15990 {
15991 tree o20 = TREE_OPERAND (op0, 0);
15992 tree o21 = TREE_OPERAND (op0, 1);
15993 switch (TREE_CODE (op1))
15994 {
15995 case GT_EXPR:
15996 {
15997 tree o50 = TREE_OPERAND (op1, 0);
15998 tree o51 = TREE_OPERAND (op1, 1);
15999 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16000 {
16001 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16002 {
16003 {
16004/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16005 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16006 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
16007 if (res) return res;
16008 }
16009 }
16010 }
16011 break;
16012 }
16013 case GE_EXPR:
16014 {
16015 tree o50 = TREE_OPERAND (op1, 0);
16016 tree o51 = TREE_OPERAND (op1, 1);
16017 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16018 {
16019 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16020 {
16021 {
16022/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16023 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16024 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
16025 if (res) return res;
16026 }
16027 }
16028 }
16029 break;
16030 }
16031 case NE_EXPR:
16032 {
16033 tree o50 = TREE_OPERAND (op1, 0);
16034 tree o51 = TREE_OPERAND (op1, 1);
16035 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16036 {
16037 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16038 {
16039 {
16040/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16041 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16042 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, NE_EXPR);
16043 if (res) return res;
16044 }
16045 }
16046 }
16047 break;
16048 }
16049 default:;
16050 }
16051 break;
16052 }
16053 case NE_EXPR:
16054 {
16055 tree o20 = TREE_OPERAND (op0, 0);
16056 tree o21 = TREE_OPERAND (op0, 1);
16057 switch (TREE_CODE (op1))
16058 {
16059 case EQ_EXPR:
16060 {
16061 tree o50 = TREE_OPERAND (op1, 0);
16062 tree o51 = TREE_OPERAND (op1, 1);
16063 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16064 {
16065 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16066 {
16067 {
16068/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16069 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16070 tree res = generic_simplify_38 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
16071 if (res) return res;
16072 }
16073 }
16074 }
16075 break;
16076 }
16077 case LE_EXPR:
16078 {
16079 tree o50 = TREE_OPERAND (op1, 0);
16080 tree o51 = TREE_OPERAND (op1, 1);
16081 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16082 {
16083 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16084 {
16085 {
16086/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16087 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16088 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, NE_EXPR);
16089 if (res) return res;
16090 }
16091 }
16092 }
16093 break;
16094 }
16095 case GE_EXPR:
16096 {
16097 tree o50 = TREE_OPERAND (op1, 0);
16098 tree o51 = TREE_OPERAND (op1, 1);
16099 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16100 {
16101 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16102 {
16103 {
16104/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16105 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16106 tree res = generic_simplify_38 (loc, type, op0, op1, captures, GE_EXPR, NE_EXPR);
16107 if (res) return res;
16108 }
16109 }
16110 }
16111 break;
16112 }
16113 default:;
16114 }
16115 break;
16116 }
16117 case GE_EXPR:
16118 {
16119 tree o20 = TREE_OPERAND (op0, 0);
16120 tree o21 = TREE_OPERAND (op0, 1);
16121 switch (TREE_CODE (op1))
16122 {
16123 case NE_EXPR:
16124 {
16125 tree o50 = TREE_OPERAND (op1, 0);
16126 tree o51 = TREE_OPERAND (op1, 1);
16127 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16128 {
16129 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16130 {
16131 {
16132/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16133 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16134 tree res = generic_simplify_38 (loc, type, op0, op1, captures, GE_EXPR, NE_EXPR);
16135 if (res) return res;
16136 }
16137 }
16138 }
16139 break;
16140 }
16141 case LT_EXPR:
16142 {
16143 tree o50 = TREE_OPERAND (op1, 0);
16144 tree o51 = TREE_OPERAND (op1, 1);
16145 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16146 {
16147 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16148 {
16149 {
16150/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16151 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16152 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
16153 if (res) return res;
16154 }
16155 }
16156 }
16157 break;
16158 }
16159 case LE_EXPR:
16160 {
16161 tree o50 = TREE_OPERAND (op1, 0);
16162 tree o51 = TREE_OPERAND (op1, 1);
16163 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16164 {
16165 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16166 {
16167 {
16168/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16169 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16170 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
16171 if (res) return res;
16172 }
16173 }
16174 }
16175 break;
16176 }
16177 default:;
16178 }
16179 break;
16180 }
16181 case GT_EXPR:
16182 {
16183 tree o20 = TREE_OPERAND (op0, 0);
16184 tree o21 = TREE_OPERAND (op0, 1);
16185 switch (TREE_CODE (op1))
16186 {
16187 case LE_EXPR:
16188 {
16189 tree o50 = TREE_OPERAND (op1, 0);
16190 tree o51 = TREE_OPERAND (op1, 1);
16191 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16192 {
16193 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16194 {
16195 {
16196/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16197 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16198 tree res = generic_simplify_38 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
16199 if (res) return res;
16200 }
16201 }
16202 }
16203 break;
16204 }
16205 default:;
16206 }
16207 break;
16208 }
16209 case EQ_EXPR:
16210 {
16211 tree o20 = TREE_OPERAND (op0, 0);
16212 tree o21 = TREE_OPERAND (op0, 1);
16213 switch (TREE_CODE (op1))
16214 {
16215 case NE_EXPR:
16216 {
16217 tree o50 = TREE_OPERAND (op1, 0);
16218 tree o51 = TREE_OPERAND (op1, 1);
16219 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16220 {
16221 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16222 {
16223 {
16224/* #line 2636 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16225 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16226 tree res = generic_simplify_38 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
16227 if (res) return res;
16228 }
16229 }
16230 }
16231 break;
16232 }
16233 default:;
16234 }
16235 break;
16236 }
16237 default:;
16238 }
16239tree op0_pops[1];
16240if (tree_logical_inverted_value (op0, op0_pops))
16241 {
16242 tree o20 = op0_pops[0];
16243 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
16244 {
16245 if (tree_truth_valued_p (op1))
16246 {
16247 {
16248/* #line 960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16249 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
16250 tree res = generic_simplify_214 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
16251 if (res) return res;
16252 }
16253 }
16254 }
16255}
16256if (tree_truth_valued_p (op0))
16257 {
16258 tree op1_pops[1];
16259 if (tree_logical_inverted_value (op1, op1_pops))
16260 {
16261 tree o30 = op1_pops[0];
16262 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
16263 {
16264 {
16265/* #line 960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16266 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
16267 tree res = generic_simplify_214 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
16268 if (res) return res;
16269 }
16270 }
16271}
16272 }
16273 return NULL_TREE;
16274}
16275
16276static tree
16277generic_simplify_BIT_XOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
16278{
16279 if (integer_zerop (op1))
16280 {
16281 {
16282/* #line 84 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16283 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
16284 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
16285 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__);
16286 tree res_op0;
16287 res_op0 = captures[0];
16288 tree res;
16289 res = non_lvalue_loc (loc, res_op0);
16290 return res;
16291 }
16292 }
16293 switch (TREE_CODE (op0))
16294 {
16295 CASE_CONVERT:
16296 {
16297 tree o20 = TREE_OPERAND (op0, 0);
16298 switch (TREE_CODE (op1))
16299 {
16300 CASE_CONVERT:
16301 {
16302 tree o40 = TREE_OPERAND (op1, 0);
16303 switch (TREE_CODE (o40))
16304 {
16305 case BIT_NOT_EXPR:
16306 {
16307 tree o50 = TREE_OPERAND (o40, 0);
16308 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16309 {
16310 {
16311/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16312 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
16313 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16314 if (res) return res;
16315 }
16316 }
16317 break;
16318 }
16319 default:;
16320 }
16321 break;
16322 }
16323 default:;
16324 }
16325 switch (TREE_CODE (o20))
16326 {
16327 case BIT_NOT_EXPR:
16328 {
16329 tree o30 = TREE_OPERAND (o20, 0);
16330 switch (TREE_CODE (op1))
16331 {
16332 CASE_CONVERT:
16333 {
16334 tree o50 = TREE_OPERAND (op1, 0);
16335 if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
16336 {
16337 {
16338/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16339 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
16340 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16341 if (res) return res;
16342 }
16343 }
16344 break;
16345 }
16346 default:;
16347 }
16348 break;
16349 }
16350 default:;
16351 }
16352 break;
16353 }
16354 default:;
16355 }
16356 switch (TREE_CODE (op1))
16357 {
16358 case BIT_NOT_EXPR:
16359 {
16360 tree o30 = TREE_OPERAND (op1, 0);
16361 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
16362 {
16363 {
16364/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16365 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
16366 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16367 if (res) return res;
16368 }
16369 }
16370 break;
16371 }
16372 default:;
16373 }
16374 switch (TREE_CODE (op0))
16375 {
16376 case BIT_NOT_EXPR:
16377 {
16378 tree o20 = TREE_OPERAND (op0, 0);
16379 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
16380 {
16381 {
16382/* #line 624 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16383 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
16384 tree res = generic_simplify_133 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16385 if (res) return res;
16386 }
16387 }
16388 break;
16389 }
16390 default:;
16391 }
16392 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
16393 {
16394 {
16395/* #line 629 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16396 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
16397 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:629, %s:%d\n", __FILE__, __LINE__);
16398 tree res;
16399 res = build_zero_cst (type);
16400 if (TREE_SIDE_EFFECTS (captures[0]))
16401 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
16402 return res;
16403 }
16404 }
16405 if (integer_all_onesp (op1))
16406 {
16407 {
16408/* #line 634 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16409 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
16410 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:634, %s:%d\n", __FILE__, __LINE__);
16411 tree res_op0;
16412 res_op0 = captures[0];
16413 tree res;
16414 res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
16415 if (TREE_SIDE_EFFECTS (captures[1]))
16416 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
16417 return res;
16418 }
16419 }
16420 switch (TREE_CODE (op0))
16421 {
16422 case BIT_AND_EXPR:
16423 {
16424 tree o20 = TREE_OPERAND (op0, 0);
16425 tree o21 = TREE_OPERAND (op0, 1);
16426 switch (TREE_CODE (op1))
16427 {
16428 case BIT_IOR_EXPR:
16429 {
16430 tree o50 = TREE_OPERAND (op1, 0);
16431 tree o51 = TREE_OPERAND (op1, 1);
16432 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16433 {
16434 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16435 {
16436 {
16437/* #line 679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16438 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16439 tree res = generic_simplify_66 (loc, type, op0, op1, captures);
16440 if (res) return res;
16441 }
16442 }
16443 }
16444 break;
16445 }
16446 case BIT_XOR_EXPR:
16447 {
16448 tree o50 = TREE_OPERAND (op1, 0);
16449 tree o51 = TREE_OPERAND (op1, 1);
16450 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16451 {
16452 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16453 {
16454 {
16455/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16456 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16457 tree res = generic_simplify_68 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16458 if (res) return res;
16459 }
16460 }
16461 }
16462 break;
16463 }
16464 default:;
16465 }
16466 switch (TREE_CODE (o21))
16467 {
16468 case INTEGER_CST:
16469 {
16470 switch (TREE_CODE (op1))
16471 {
16472 CASE_CONVERT:
16473 {
16474 tree o50 = TREE_OPERAND (op1, 0);
16475 switch (TREE_CODE (o50))
16476 {
16477 case BIT_AND_EXPR:
16478 {
16479 tree o60 = TREE_OPERAND (o50, 0);
16480 tree o61 = TREE_OPERAND (o50, 1);
16481 switch (TREE_CODE (o61))
16482 {
16483 case INTEGER_CST:
16484 {
16485 {
16486/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16487 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
16488 tree res = generic_simplify_188 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16489 if (res) return res;
16490 }
16491 break;
16492 }
16493 default:;
16494 }
16495 break;
16496 }
16497 default:;
16498 }
16499 break;
16500 }
16501 case BIT_AND_EXPR:
16502 {
16503 tree o50 = TREE_OPERAND (op1, 0);
16504 tree o51 = TREE_OPERAND (op1, 1);
16505 switch (TREE_CODE (o51))
16506 {
16507 case INTEGER_CST:
16508 {
16509 {
16510/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16511 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
16512 tree res = generic_simplify_188 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16513 if (res) return res;
16514 }
16515 break;
16516 }
16517 default:;
16518 }
16519 break;
16520 }
16521 default:;
16522 }
16523 break;
16524 }
16525 default:;
16526 }
16527 break;
16528 }
16529 case BIT_IOR_EXPR:
16530 {
16531 tree o20 = TREE_OPERAND (op0, 0);
16532 tree o21 = TREE_OPERAND (op0, 1);
16533 switch (TREE_CODE (op1))
16534 {
16535 case BIT_AND_EXPR:
16536 {
16537 tree o50 = TREE_OPERAND (op1, 0);
16538 tree o51 = TREE_OPERAND (op1, 1);
16539 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16540 {
16541 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16542 {
16543 {
16544/* #line 679 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16545 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16546 tree res = generic_simplify_66 (loc, type, op0, op1, captures);
16547 if (res) return res;
16548 }
16549 }
16550 }
16551 break;
16552 }
16553 case BIT_XOR_EXPR:
16554 {
16555 tree o50 = TREE_OPERAND (op1, 0);
16556 tree o51 = TREE_OPERAND (op1, 1);
16557 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16558 {
16559 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16560 {
16561 {
16562/* #line 684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16563 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16564 tree res = generic_simplify_67 (loc, type, op0, op1, captures);
16565 if (res) return res;
16566 }
16567 }
16568 }
16569 break;
16570 }
16571 default:;
16572 }
16573 break;
16574 }
16575 case BIT_XOR_EXPR:
16576 {
16577 tree o20 = TREE_OPERAND (op0, 0);
16578 tree o21 = TREE_OPERAND (op0, 1);
16579 switch (TREE_CODE (op1))
16580 {
16581 case BIT_IOR_EXPR:
16582 {
16583 tree o50 = TREE_OPERAND (op1, 0);
16584 tree o51 = TREE_OPERAND (op1, 1);
16585 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16586 {
16587 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16588 {
16589 {
16590/* #line 684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16591 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16592 tree res = generic_simplify_67 (loc, type, op0, op1, captures);
16593 if (res) return res;
16594 }
16595 }
16596 }
16597 break;
16598 }
16599 case BIT_AND_EXPR:
16600 {
16601 tree o50 = TREE_OPERAND (op1, 0);
16602 tree o51 = TREE_OPERAND (op1, 1);
16603 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
16604 {
16605 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
16606 {
16607 {
16608/* #line 692 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16609 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
16610 tree res = generic_simplify_68 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16611 if (res) return res;
16612 }
16613 }
16614 }
16615 break;
16616 }
16617 default:;
16618 }
16619 break;
16620 }
16621 CASE_CONVERT:
16622 {
16623 tree o20 = TREE_OPERAND (op0, 0);
16624 switch (TREE_CODE (o20))
16625 {
16626 case BIT_AND_EXPR:
16627 {
16628 tree o30 = TREE_OPERAND (o20, 0);
16629 tree o31 = TREE_OPERAND (o20, 1);
16630 switch (TREE_CODE (o31))
16631 {
16632 case INTEGER_CST:
16633 {
16634 switch (TREE_CODE (op1))
16635 {
16636 CASE_CONVERT:
16637 {
16638 tree o60 = TREE_OPERAND (op1, 0);
16639 switch (TREE_CODE (o60))
16640 {
16641 case BIT_AND_EXPR:
16642 {
16643 tree o70 = TREE_OPERAND (o60, 0);
16644 tree o71 = TREE_OPERAND (o60, 1);
16645 switch (TREE_CODE (o71))
16646 {
16647 case INTEGER_CST:
16648 {
16649 {
16650/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16651 tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
16652 tree res = generic_simplify_188 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16653 if (res) return res;
16654 }
16655 break;
16656 }
16657 default:;
16658 }
16659 break;
16660 }
16661 default:;
16662 }
16663 break;
16664 }
16665 case BIT_AND_EXPR:
16666 {
16667 tree o60 = TREE_OPERAND (op1, 0);
16668 tree o61 = TREE_OPERAND (op1, 1);
16669 switch (TREE_CODE (o61))
16670 {
16671 case INTEGER_CST:
16672 {
16673 {
16674/* #line 751 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16675 tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
16676 tree res = generic_simplify_188 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
16677 if (res) return res;
16678 }
16679 break;
16680 }
16681 default:;
16682 }
16683 break;
16684 }
16685 default:;
16686 }
16687 break;
16688 }
16689 default:;
16690 }
16691 break;
16692 }
16693 case BIT_IOR_EXPR:
16694 {
16695 tree o30 = TREE_OPERAND (o20, 0);
16696 tree o31 = TREE_OPERAND (o20, 1);
16697 switch (TREE_CODE (op1))
16698 {
16699 CASE_CONVERT:
16700 {
16701 tree o60 = TREE_OPERAND (op1, 0);
16702 if (o60 == o30 || operand_equal_p (o60, o30, 0))
16703 {
16704 {
16705/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16706 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
16707 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16708 if (res) return res;
16709 }
16710 }
16711 if (o60 == o31 || operand_equal_p (o60, o31, 0))
16712 {
16713 {
16714/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16715 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
16716 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16717 if (res) return res;
16718 }
16719 }
16720 break;
16721 }
16722 default:;
16723 }
16724 break;
16725 }
16726 default:;
16727 }
16728 switch (TREE_CODE (op1))
16729 {
16730 CASE_CONVERT:
16731 {
16732 tree o40 = TREE_OPERAND (op1, 0);
16733 switch (TREE_CODE (o40))
16734 {
16735 case BIT_IOR_EXPR:
16736 {
16737 tree o50 = TREE_OPERAND (o40, 0);
16738 tree o51 = TREE_OPERAND (o40, 1);
16739 if (o50 == o20 || operand_equal_p (o50, o20, 0))
16740 {
16741 {
16742/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16743 tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
16744 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16745 if (res) return res;
16746 }
16747 }
16748 if (o51 == o20 || operand_equal_p (o51, o20, 0))
16749 {
16750 {
16751/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16752 tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
16753 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16754 if (res) return res;
16755 }
16756 }
16757 break;
16758 }
16759 default:;
16760 }
16761 break;
16762 }
16763 default:;
16764 }
16765 switch (TREE_CODE (o20))
16766 {
16767 case BIT_IOR_EXPR:
16768 {
16769 tree o30 = TREE_OPERAND (o20, 0);
16770 tree o31 = TREE_OPERAND (o20, 1);
16771 if (op1 == o30 || operand_equal_p (op1, o30, 0))
16772 {
16773 {
16774/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16775 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
16776 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16777 if (res) return res;
16778 }
16779 }
16780 if (op1 == o31 || operand_equal_p (op1, o31, 0))
16781 {
16782 {
16783/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16784 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
16785 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16786 if (res) return res;
16787 }
16788 }
16789 break;
16790 }
16791 default:;
16792 }
16793 break;
16794 }
16795 default:;
16796 }
16797 switch (TREE_CODE (op1))
16798 {
16799 CASE_CONVERT:
16800 {
16801 tree o30 = TREE_OPERAND (op1, 0);
16802 switch (TREE_CODE (o30))
16803 {
16804 case BIT_IOR_EXPR:
16805 {
16806 tree o40 = TREE_OPERAND (o30, 0);
16807 tree o41 = TREE_OPERAND (o30, 1);
16808 if (o40 == op0 || operand_equal_p (o40, op0, 0))
16809 {
16810 {
16811/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16812 tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
16813 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16814 if (res) return res;
16815 }
16816 }
16817 if (o41 == op0 || operand_equal_p (o41, op0, 0))
16818 {
16819 {
16820/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16821 tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
16822 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16823 if (res) return res;
16824 }
16825 }
16826 break;
16827 }
16828 default:;
16829 }
16830 break;
16831 }
16832 default:;
16833 }
16834 switch (TREE_CODE (op0))
16835 {
16836 case BIT_IOR_EXPR:
16837 {
16838 tree o20 = TREE_OPERAND (op0, 0);
16839 tree o21 = TREE_OPERAND (op0, 1);
16840 switch (TREE_CODE (op1))
16841 {
16842 CASE_CONVERT:
16843 {
16844 tree o50 = TREE_OPERAND (op1, 0);
16845 if (o50 == o20 || operand_equal_p (o50, o20, 0))
16846 {
16847 {
16848/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16849 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
16850 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16851 if (res) return res;
16852 }
16853 }
16854 if (o50 == o21 || operand_equal_p (o50, o21, 0))
16855 {
16856 {
16857/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16858 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
16859 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16860 if (res) return res;
16861 }
16862 }
16863 break;
16864 }
16865 default:;
16866 }
16867 if (op1 == o20 || operand_equal_p (op1, o20, 0))
16868 {
16869 {
16870/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16871 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
16872 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16873 if (res) return res;
16874 }
16875 }
16876 if (op1 == o21 || operand_equal_p (op1, o21, 0))
16877 {
16878 {
16879/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16880 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
16881 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16882 if (res) return res;
16883 }
16884 }
16885 break;
16886 }
16887 CASE_CONVERT:
16888 {
16889 tree o20 = TREE_OPERAND (op0, 0);
16890 switch (TREE_CODE (op1))
16891 {
16892 case BIT_IOR_EXPR:
16893 {
16894 tree o40 = TREE_OPERAND (op1, 0);
16895 tree o41 = TREE_OPERAND (op1, 1);
16896 if (o40 == o20 || operand_equal_p (o40, o20, 0))
16897 {
16898 {
16899/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16900 tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
16901 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16902 if (res) return res;
16903 }
16904 }
16905 if (o41 == o20 || operand_equal_p (o41, o20, 0))
16906 {
16907 {
16908/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16909 tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
16910 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16911 if (res) return res;
16912 }
16913 }
16914 break;
16915 }
16916 default:;
16917 }
16918 break;
16919 }
16920 default:;
16921 }
16922 switch (TREE_CODE (op1))
16923 {
16924 case BIT_IOR_EXPR:
16925 {
16926 tree o30 = TREE_OPERAND (op1, 0);
16927 tree o31 = TREE_OPERAND (op1, 1);
16928 if (o30 == op0 || operand_equal_p (o30, op0, 0))
16929 {
16930 {
16931/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16932 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
16933 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16934 if (res) return res;
16935 }
16936 }
16937 if (o31 == op0 || operand_equal_p (o31, op0, 0))
16938 {
16939 {
16940/* #line 759 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16941 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
16942 tree res = generic_simplify_81 (loc, type, op0, op1, captures);
16943 if (res) return res;
16944 }
16945 }
16946 break;
16947 }
16948 default:;
16949 }
16950 switch (TREE_CODE (op0))
16951 {
16952 CASE_CONVERT:
16953 {
16954 tree o20 = TREE_OPERAND (op0, 0);
16955 switch (TREE_CODE (o20))
16956 {
16957 case BIT_NOT_EXPR:
16958 {
16959 tree o30 = TREE_OPERAND (o20, 0);
16960 switch (TREE_CODE (op1))
16961 {
16962 CASE_CONVERT:
16963 {
16964 tree o50 = TREE_OPERAND (op1, 0);
16965 switch (TREE_CODE (o50))
16966 {
16967 case BIT_NOT_EXPR:
16968 {
16969 tree o60 = TREE_OPERAND (o50, 0);
16970 {
16971/* #line 765 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16972 tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
16973 tree res = generic_simplify_174 (loc, type, op0, op1, captures);
16974 if (res) return res;
16975 }
16976 break;
16977 }
16978 default:;
16979 }
16980 break;
16981 }
16982 case BIT_NOT_EXPR:
16983 {
16984 tree o50 = TREE_OPERAND (op1, 0);
16985 {
16986/* #line 765 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16987 tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
16988 tree res = generic_simplify_174 (loc, type, op0, op1, captures);
16989 if (res) return res;
16990 }
16991 break;
16992 }
16993 case INTEGER_CST:
16994 {
16995 {
16996/* #line 772 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
16997 tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
16998 tree res = generic_simplify_33 (loc, type, op0, op1, captures);
16999 if (res) return res;
17000 }
17001 break;
17002 }
17003 default:;
17004 }
17005 break;
17006 }
17007 default:;
17008 }
17009 break;
17010 }
17011 case BIT_NOT_EXPR:
17012 {
17013 tree o20 = TREE_OPERAND (op0, 0);
17014 switch (TREE_CODE (op1))
17015 {
17016 CASE_CONVERT:
17017 {
17018 tree o40 = TREE_OPERAND (op1, 0);
17019 switch (TREE_CODE (o40))
17020 {
17021 case BIT_NOT_EXPR:
17022 {
17023 tree o50 = TREE_OPERAND (o40, 0);
17024 {
17025/* #line 765 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17026 tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
17027 tree res = generic_simplify_174 (loc, type, op0, op1, captures);
17028 if (res) return res;
17029 }
17030 break;
17031 }
17032 default:;
17033 }
17034 break;
17035 }
17036 case BIT_NOT_EXPR:
17037 {
17038 tree o40 = TREE_OPERAND (op1, 0);
17039 {
17040/* #line 765 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17041 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
17042 tree res = generic_simplify_174 (loc, type, op0, op1, captures);
17043 if (res) return res;
17044 }
17045 break;
17046 }
17047 case INTEGER_CST:
17048 {
17049 {
17050/* #line 772 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17051 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
17052 tree res = generic_simplify_33 (loc, type, op0, op1, captures);
17053 if (res) return res;
17054 }
17055 break;
17056 }
17057 default:;
17058 }
17059 break;
17060 }
17061 case BIT_AND_EXPR:
17062 {
17063 tree o20 = TREE_OPERAND (op0, 0);
17064 tree o21 = TREE_OPERAND (op0, 1);
17065 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
17066 {
17067 {
17068/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17069 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17070 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17071 if (res) return res;
17072 }
17073 }
17074 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
17075 {
17076 {
17077/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17078 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
17079 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17080 if (res) return res;
17081 }
17082 }
17083 break;
17084 }
17085 default:;
17086 }
17087 switch (TREE_CODE (op1))
17088 {
17089 case BIT_AND_EXPR:
17090 {
17091 tree o30 = TREE_OPERAND (op1, 0);
17092 tree o31 = TREE_OPERAND (op1, 1);
17093 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
17094 {
17095 {
17096/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17097 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
17098 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17099 if (res) return res;
17100 }
17101 }
17102 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
17103 {
17104 {
17105/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17106 tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
17107 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17108 if (res) return res;
17109 }
17110 }
17111 break;
17112 }
17113 default:;
17114 }
17115 switch (TREE_CODE (op0))
17116 {
17117 CASE_CONVERT:
17118 {
17119 tree o20 = TREE_OPERAND (op0, 0);
17120 switch (TREE_CODE (o20))
17121 {
17122 case BIT_AND_EXPR:
17123 {
17124 tree o30 = TREE_OPERAND (o20, 0);
17125 tree o31 = TREE_OPERAND (o20, 1);
17126 switch (TREE_CODE (op1))
17127 {
17128 CASE_CONVERT:
17129 {
17130 tree o60 = TREE_OPERAND (op1, 0);
17131 switch (TREE_CODE (o60))
17132 {
17133 case BIT_AND_EXPR:
17134 {
17135 tree o70 = TREE_OPERAND (o60, 0);
17136 tree o71 = TREE_OPERAND (o60, 1);
17137 if (o70 == o30 || operand_equal_p (o70, o30, 0))
17138 {
17139 {
17140/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17141 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
17142 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17143 if (res) return res;
17144 }
17145 }
17146 if (o71 == o30 || operand_equal_p (o71, o30, 0))
17147 {
17148 {
17149/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17150 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
17151 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17152 if (res) return res;
17153 }
17154 }
17155 if (o70 == o31 || operand_equal_p (o70, o31, 0))
17156 {
17157 {
17158/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17159 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
17160 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17161 if (res) return res;
17162 }
17163 }
17164 if (o71 == o31 || operand_equal_p (o71, o31, 0))
17165 {
17166 {
17167/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17168 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
17169 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17170 if (res) return res;
17171 }
17172 }
17173 break;
17174 }
17175 default:;
17176 }
17177 break;
17178 }
17179 default:;
17180 }
17181 break;
17182 }
17183 case BIT_XOR_EXPR:
17184 {
17185 tree o30 = TREE_OPERAND (o20, 0);
17186 tree o31 = TREE_OPERAND (o20, 1);
17187 switch (TREE_CODE (op1))
17188 {
17189 CASE_CONVERT:
17190 {
17191 tree o60 = TREE_OPERAND (op1, 0);
17192 if (o60 == o31 || operand_equal_p (o60, o31, 0))
17193 {
17194 {
17195/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17196 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
17197 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17198 if (res) return res;
17199 }
17200 }
17201 if (o60 == o30 || operand_equal_p (o60, o30, 0))
17202 {
17203 {
17204/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17205 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
17206 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17207 if (res) return res;
17208 }
17209 }
17210 break;
17211 }
17212 default:;
17213 }
17214 break;
17215 }
17216 default:;
17217 }
17218 switch (TREE_CODE (op1))
17219 {
17220 CASE_CONVERT:
17221 {
17222 tree o40 = TREE_OPERAND (op1, 0);
17223 switch (TREE_CODE (o40))
17224 {
17225 case BIT_XOR_EXPR:
17226 {
17227 tree o50 = TREE_OPERAND (o40, 0);
17228 tree o51 = TREE_OPERAND (o40, 1);
17229 if (o51 == o20 || operand_equal_p (o51, o20, 0))
17230 {
17231 {
17232/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17233 tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
17234 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17235 if (res) return res;
17236 }
17237 }
17238 if (o50 == o20 || operand_equal_p (o50, o20, 0))
17239 {
17240 {
17241/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17242 tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
17243 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17244 if (res) return res;
17245 }
17246 }
17247 break;
17248 }
17249 default:;
17250 }
17251 break;
17252 }
17253 default:;
17254 }
17255 switch (TREE_CODE (o20))
17256 {
17257 case BIT_XOR_EXPR:
17258 {
17259 tree o30 = TREE_OPERAND (o20, 0);
17260 tree o31 = TREE_OPERAND (o20, 1);
17261 if (op1 == o31 || operand_equal_p (op1, o31, 0))
17262 {
17263 {
17264/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17265 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
17266 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17267 if (res) return res;
17268 }
17269 }
17270 if (op1 == o30 || operand_equal_p (op1, o30, 0))
17271 {
17272 {
17273/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17274 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
17275 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17276 if (res) return res;
17277 }
17278 }
17279 break;
17280 }
17281 default:;
17282 }
17283 break;
17284 }
17285 case BIT_AND_EXPR:
17286 {
17287 tree o20 = TREE_OPERAND (op0, 0);
17288 tree o21 = TREE_OPERAND (op0, 1);
17289 switch (TREE_CODE (op1))
17290 {
17291 case BIT_AND_EXPR:
17292 {
17293 tree o50 = TREE_OPERAND (op1, 0);
17294 tree o51 = TREE_OPERAND (op1, 1);
17295 if (o50 == o20 || operand_equal_p (o50, o20, 0))
17296 {
17297 {
17298/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17299 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
17300 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17301 if (res) return res;
17302 }
17303 }
17304 if (o51 == o20 || operand_equal_p (o51, o20, 0))
17305 {
17306 {
17307/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17308 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
17309 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17310 if (res) return res;
17311 }
17312 }
17313 if (o50 == o21 || operand_equal_p (o50, o21, 0))
17314 {
17315 {
17316/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17317 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
17318 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17319 if (res) return res;
17320 }
17321 }
17322 if (o51 == o21 || operand_equal_p (o51, o21, 0))
17323 {
17324 {
17325/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17326 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
17327 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
17328 if (res) return res;
17329 }
17330 }
17331 break;
17332 }
17333 default:;
17334 }
17335 break;
17336 }
17337 default:;
17338 }
17339 switch (TREE_CODE (op1))
17340 {
17341 CASE_CONVERT:
17342 {
17343 tree o30 = TREE_OPERAND (op1, 0);
17344 switch (TREE_CODE (o30))
17345 {
17346 case BIT_XOR_EXPR:
17347 {
17348 tree o40 = TREE_OPERAND (o30, 0);
17349 tree o41 = TREE_OPERAND (o30, 1);
17350 if (o41 == op0 || operand_equal_p (o41, op0, 0))
17351 {
17352 {
17353/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17354 tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
17355 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17356 if (res) return res;
17357 }
17358 }
17359 if (o40 == op0 || operand_equal_p (o40, op0, 0))
17360 {
17361 {
17362/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17363 tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
17364 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17365 if (res) return res;
17366 }
17367 }
17368 break;
17369 }
17370 default:;
17371 }
17372 break;
17373 }
17374 default:;
17375 }
17376 switch (TREE_CODE (op0))
17377 {
17378 case BIT_XOR_EXPR:
17379 {
17380 tree o20 = TREE_OPERAND (op0, 0);
17381 tree o21 = TREE_OPERAND (op0, 1);
17382 switch (TREE_CODE (op1))
17383 {
17384 CASE_CONVERT:
17385 {
17386 tree o50 = TREE_OPERAND (op1, 0);
17387 if (o50 == o21 || operand_equal_p (o50, o21, 0))
17388 {
17389 {
17390/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17391 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
17392 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17393 if (res) return res;
17394 }
17395 }
17396 if (o50 == o20 || operand_equal_p (o50, o20, 0))
17397 {
17398 {
17399/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17400 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
17401 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17402 if (res) return res;
17403 }
17404 }
17405 break;
17406 }
17407 default:;
17408 }
17409 if (op1 == o21 || operand_equal_p (op1, o21, 0))
17410 {
17411 {
17412/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17413 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
17414 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17415 if (res) return res;
17416 }
17417 }
17418 if (op1 == o20 || operand_equal_p (op1, o20, 0))
17419 {
17420 {
17421/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17422 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
17423 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17424 if (res) return res;
17425 }
17426 }
17427 break;
17428 }
17429 CASE_CONVERT:
17430 {
17431 tree o20 = TREE_OPERAND (op0, 0);
17432 switch (TREE_CODE (op1))
17433 {
17434 case BIT_XOR_EXPR:
17435 {
17436 tree o40 = TREE_OPERAND (op1, 0);
17437 tree o41 = TREE_OPERAND (op1, 1);
17438 if (o41 == o20 || operand_equal_p (o41, o20, 0))
17439 {
17440 {
17441/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17442 tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
17443 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17444 if (res) return res;
17445 }
17446 }
17447 if (o40 == o20 || operand_equal_p (o40, o20, 0))
17448 {
17449 {
17450/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17451 tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
17452 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17453 if (res) return res;
17454 }
17455 }
17456 break;
17457 }
17458 default:;
17459 }
17460 break;
17461 }
17462 default:;
17463 }
17464 switch (TREE_CODE (op1))
17465 {
17466 case BIT_XOR_EXPR:
17467 {
17468 tree o30 = TREE_OPERAND (op1, 0);
17469 tree o31 = TREE_OPERAND (op1, 1);
17470 if (o31 == op0 || operand_equal_p (o31, op0, 0))
17471 {
17472 {
17473/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17474 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
17475 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17476 if (res) return res;
17477 }
17478 }
17479 if (o30 == op0 || operand_equal_p (o30, op0, 0))
17480 {
17481 {
17482/* #line 806 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17483 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
17484 tree res = generic_simplify_95 (loc, type, op0, op1, captures);
17485 if (res) return res;
17486 }
17487 }
17488 break;
17489 }
17490 default:;
17491 }
17492 switch (TREE_CODE (op0))
17493 {
17494 CASE_CONVERT:
17495 {
17496 tree o20 = TREE_OPERAND (op0, 0);
17497 switch (TREE_CODE (o20))
17498 {
17499 case BIT_XOR_EXPR:
17500 {
17501 tree o30 = TREE_OPERAND (o20, 0);
17502 tree o31 = TREE_OPERAND (o20, 1);
17503 switch (TREE_CODE (op1))
17504 {
17505 CASE_CONVERT:
17506 {
17507 tree o60 = TREE_OPERAND (op1, 0);
17508 switch (TREE_CODE (o60))
17509 {
17510 case BIT_XOR_EXPR:
17511 {
17512 tree o70 = TREE_OPERAND (o60, 0);
17513 tree o71 = TREE_OPERAND (o60, 1);
17514 if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
17515 {
17516 {
17517/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17518 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o71 };
17519 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17520 if (res) return res;
17521 }
17522 }
17523 if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
17524 {
17525 {
17526/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17527 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o70 };
17528 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17529 if (res) return res;
17530 }
17531 }
17532 if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
17533 {
17534 {
17535/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17536 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o71 };
17537 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17538 if (res) return res;
17539 }
17540 }
17541 if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
17542 {
17543 {
17544/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17545 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o70 };
17546 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17547 if (res) return res;
17548 }
17549 }
17550 break;
17551 }
17552 default:;
17553 }
17554 break;
17555 }
17556 case BIT_XOR_EXPR:
17557 {
17558 tree o60 = TREE_OPERAND (op1, 0);
17559 tree o61 = TREE_OPERAND (op1, 1);
17560 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
17561 {
17562 {
17563/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17564 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o61 };
17565 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17566 if (res) return res;
17567 }
17568 }
17569 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
17570 {
17571 {
17572/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17573 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o60 };
17574 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17575 if (res) return res;
17576 }
17577 }
17578 if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
17579 {
17580 {
17581/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17582 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o61 };
17583 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17584 if (res) return res;
17585 }
17586 }
17587 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
17588 {
17589 {
17590/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17591 tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o60 };
17592 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17593 if (res) return res;
17594 }
17595 }
17596 break;
17597 }
17598 default:;
17599 }
17600 break;
17601 }
17602 default:;
17603 }
17604 switch (TREE_CODE (op1))
17605 {
17606 CASE_CONVERT:
17607 {
17608 tree o40 = TREE_OPERAND (op1, 0);
17609 {
17610/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17611 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
17612 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
17613 if (res) return res;
17614 }
17615 break;
17616 }
17617 default:;
17618 }
17619 {
17620/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17621 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
17622 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
17623 if (res) return res;
17624 }
17625 break;
17626 }
17627 case BIT_XOR_EXPR:
17628 {
17629 tree o20 = TREE_OPERAND (op0, 0);
17630 tree o21 = TREE_OPERAND (op0, 1);
17631 switch (TREE_CODE (op1))
17632 {
17633 CASE_CONVERT:
17634 {
17635 tree o50 = TREE_OPERAND (op1, 0);
17636 switch (TREE_CODE (o50))
17637 {
17638 case BIT_XOR_EXPR:
17639 {
17640 tree o60 = TREE_OPERAND (o50, 0);
17641 tree o61 = TREE_OPERAND (o50, 1);
17642 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
17643 {
17644 {
17645/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17646 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o61 };
17647 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17648 if (res) return res;
17649 }
17650 }
17651 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
17652 {
17653 {
17654/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17655 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o60 };
17656 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17657 if (res) return res;
17658 }
17659 }
17660 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
17661 {
17662 {
17663/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17664 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o61 };
17665 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17666 if (res) return res;
17667 }
17668 }
17669 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
17670 {
17671 {
17672/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17673 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o60 };
17674 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17675 if (res) return res;
17676 }
17677 }
17678 break;
17679 }
17680 default:;
17681 }
17682 break;
17683 }
17684 case BIT_XOR_EXPR:
17685 {
17686 tree o50 = TREE_OPERAND (op1, 0);
17687 tree o51 = TREE_OPERAND (op1, 1);
17688 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
17689 {
17690 {
17691/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17692 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
17693 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17694 if (res) return res;
17695 }
17696 }
17697 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
17698 {
17699 {
17700/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17701 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
17702 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17703 if (res) return res;
17704 }
17705 }
17706 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
17707 {
17708 {
17709/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17710 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
17711 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17712 if (res) return res;
17713 }
17714 }
17715 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
17716 {
17717 {
17718/* #line 821 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17719 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
17720 tree res = generic_simplify_50 (loc, type, op0, op1, captures);
17721 if (res) return res;
17722 }
17723 }
17724 break;
17725 }
17726 default:;
17727 }
17728 if (CONSTANT_CLASS_P (o21))
17729 {
17730 if (CONSTANT_CLASS_P (op1))
17731 {
17732 {
17733/* #line 928 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17734 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
17735 tree res = generic_simplify_119 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
17736 if (res) return res;
17737 }
17738 }
17739 }
17740 break;
17741 }
17742 case BIT_IOR_EXPR:
17743 {
17744 tree o20 = TREE_OPERAND (op0, 0);
17745 tree o21 = TREE_OPERAND (op0, 1);
17746 switch (TREE_CODE (o21))
17747 {
17748 case INTEGER_CST:
17749 {
17750 switch (TREE_CODE (op1))
17751 {
17752 case INTEGER_CST:
17753 {
17754 {
17755/* #line 1054 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17756 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
17757 tree res = generic_simplify_192 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
17758 if (res) return res;
17759 }
17760 break;
17761 }
17762 default:;
17763 }
17764 break;
17765 }
17766 default:;
17767 }
17768 break;
17769 }
17770 case LT_EXPR:
17771 {
17772 tree o20 = TREE_OPERAND (op0, 0);
17773 tree o21 = TREE_OPERAND (op0, 1);
17774 if (integer_truep (op1))
17775 {
17776 {
17777/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17778 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17779 tree res = generic_simplify_226 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
17780 if (res) return res;
17781 }
17782 }
17783 break;
17784 }
17785 case LE_EXPR:
17786 {
17787 tree o20 = TREE_OPERAND (op0, 0);
17788 tree o21 = TREE_OPERAND (op0, 1);
17789 if (integer_truep (op1))
17790 {
17791 {
17792/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17793 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17794 tree res = generic_simplify_226 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
17795 if (res) return res;
17796 }
17797 }
17798 break;
17799 }
17800 case EQ_EXPR:
17801 {
17802 tree o20 = TREE_OPERAND (op0, 0);
17803 tree o21 = TREE_OPERAND (op0, 1);
17804 if (integer_truep (op1))
17805 {
17806 {
17807/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17808 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17809 tree res = generic_simplify_226 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
17810 if (res) return res;
17811 }
17812 }
17813 break;
17814 }
17815 case NE_EXPR:
17816 {
17817 tree o20 = TREE_OPERAND (op0, 0);
17818 tree o21 = TREE_OPERAND (op0, 1);
17819 if (integer_truep (op1))
17820 {
17821 {
17822/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17823 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17824 tree res = generic_simplify_226 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
17825 if (res) return res;
17826 }
17827 }
17828 break;
17829 }
17830 case GE_EXPR:
17831 {
17832 tree o20 = TREE_OPERAND (op0, 0);
17833 tree o21 = TREE_OPERAND (op0, 1);
17834 if (integer_truep (op1))
17835 {
17836 {
17837/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17838 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17839 tree res = generic_simplify_226 (loc, type, op0, op1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
17840 if (res) return res;
17841 }
17842 }
17843 break;
17844 }
17845 case GT_EXPR:
17846 {
17847 tree o20 = TREE_OPERAND (op0, 0);
17848 tree o21 = TREE_OPERAND (op0, 1);
17849 if (integer_truep (op1))
17850 {
17851 {
17852/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17853 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17854 tree res = generic_simplify_226 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
17855 if (res) return res;
17856 }
17857 }
17858 break;
17859 }
17860 case UNORDERED_EXPR:
17861 {
17862 tree o20 = TREE_OPERAND (op0, 0);
17863 tree o21 = TREE_OPERAND (op0, 1);
17864 if (integer_truep (op1))
17865 {
17866 {
17867/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17868 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17869 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
17870 if (res) return res;
17871 }
17872 }
17873 break;
17874 }
17875 case ORDERED_EXPR:
17876 {
17877 tree o20 = TREE_OPERAND (op0, 0);
17878 tree o21 = TREE_OPERAND (op0, 1);
17879 if (integer_truep (op1))
17880 {
17881 {
17882/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17883 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17884 tree res = generic_simplify_226 (loc, type, op0, op1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
17885 if (res) return res;
17886 }
17887 }
17888 break;
17889 }
17890 case UNLT_EXPR:
17891 {
17892 tree o20 = TREE_OPERAND (op0, 0);
17893 tree o21 = TREE_OPERAND (op0, 1);
17894 if (integer_truep (op1))
17895 {
17896 {
17897/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17898 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17899 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
17900 if (res) return res;
17901 }
17902 }
17903 break;
17904 }
17905 case UNLE_EXPR:
17906 {
17907 tree o20 = TREE_OPERAND (op0, 0);
17908 tree o21 = TREE_OPERAND (op0, 1);
17909 if (integer_truep (op1))
17910 {
17911 {
17912/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17913 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17914 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
17915 if (res) return res;
17916 }
17917 }
17918 break;
17919 }
17920 case UNGT_EXPR:
17921 {
17922 tree o20 = TREE_OPERAND (op0, 0);
17923 tree o21 = TREE_OPERAND (op0, 1);
17924 if (integer_truep (op1))
17925 {
17926 {
17927/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17928 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17929 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
17930 if (res) return res;
17931 }
17932 }
17933 break;
17934 }
17935 case UNGE_EXPR:
17936 {
17937 tree o20 = TREE_OPERAND (op0, 0);
17938 tree o21 = TREE_OPERAND (op0, 1);
17939 if (integer_truep (op1))
17940 {
17941 {
17942/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17943 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17944 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
17945 if (res) return res;
17946 }
17947 }
17948 break;
17949 }
17950 case UNEQ_EXPR:
17951 {
17952 tree o20 = TREE_OPERAND (op0, 0);
17953 tree o21 = TREE_OPERAND (op0, 1);
17954 if (integer_truep (op1))
17955 {
17956 {
17957/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17958 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17959 tree res = generic_simplify_226 (loc, type, op0, op1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
17960 if (res) return res;
17961 }
17962 }
17963 break;
17964 }
17965 case LTGT_EXPR:
17966 {
17967 tree o20 = TREE_OPERAND (op0, 0);
17968 tree o21 = TREE_OPERAND (op0, 1);
17969 if (integer_truep (op1))
17970 {
17971 {
17972/* #line 2299 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17973 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
17974 tree res = generic_simplify_226 (loc, type, op0, op1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
17975 if (res) return res;
17976 }
17977 }
17978 break;
17979 }
17980 default:;
17981 }
17982tree op0_pops[1];
17983if (tree_logical_inverted_value (op0, op0_pops))
17984 {
17985 tree o20 = op0_pops[0];
17986 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
17987 {
17988 if (tree_truth_valued_p (op1))
17989 {
17990 {
17991/* #line 960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
17992 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
17993 tree res = generic_simplify_214 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
17994 if (res) return res;
17995 }
17996 }
17997 }
17998}
17999if (tree_truth_valued_p (op0))
18000 {
18001 tree op1_pops[1];
18002 if (tree_logical_inverted_value (op1, op1_pops))
18003 {
18004 tree o30 = op1_pops[0];
18005 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
18006 {
18007 {
18008/* #line 960 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18009 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
18010 tree res = generic_simplify_214 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
18011 if (res) return res;
18012 }
18013 }
18014}
18015 }
18016 return NULL_TREE;
18017}
18018
18019static tree
18020generic_simplify_MULT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
18021{
18022 if (integer_zerop (op1))
18023 {
18024 {
18025/* #line 116 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18026 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
18027 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:116, %s:%d\n", __FILE__, __LINE__);
18028 tree res;
18029 res = captures[1];
18030 if (TREE_SIDE_EFFECTS (captures[0]))
18031 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
18032 return res;
18033 }
18034 }
18035 if (real_zerop (op1))
18036 {
18037 {
18038/* #line 124 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18039 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
18040/* #line 124 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18041 if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
18042 {
18043 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:125, %s:%d\n", __FILE__, __LINE__);
18044 tree res;
18045 res = captures[1];
18046 if (TREE_SIDE_EFFECTS (captures[0]))
18047 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
18048 return res;
18049 }
18050 }
18051 }
18052 if (real_onep (op1))
18053 {
18054 {
18055/* #line 131 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18056 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
18057/* #line 131 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18058 if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
18059 {
18060 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
18061 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:134, %s:%d\n", __FILE__, __LINE__);
18062 tree res_op0;
18063 res_op0 = captures[0];
18064 tree res;
18065 res = non_lvalue_loc (loc, res_op0);
18066 return res;
18067 }
18068 }
18069 }
18070 if (real_minus_onep (op1))
18071 {
18072 {
18073/* #line 139 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18074 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
18075/* #line 139 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18076 if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
18077 {
18078 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
18079 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:142, %s:%d\n", __FILE__, __LINE__);
18080 tree res_op0;
18081 res_op0 = captures[0];
18082 tree res;
18083 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
18084 return res;
18085 }
18086 }
18087 }
18088 if (integer_onep (op1))
18089 {
18090 {
18091/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18092 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
18093 tree res = generic_simplify_187 (loc, type, op0, op1, captures, MULT_EXPR);
18094 if (res) return res;
18095 }
18096 }
18097 switch (TREE_CODE (op0))
18098 {
18099 case TRUNC_DIV_EXPR:
18100 {
18101 tree o20 = TREE_OPERAND (op0, 0);
18102 tree o21 = TREE_OPERAND (op0, 1);
18103 if (integer_pow2p (o21))
18104 {
18105 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
18106 {
18107 {
18108/* #line 389 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18109 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
18110/* #line 389 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18111 if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
18112 {
18113 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:390, %s:%d\n", __FILE__, __LINE__);
18114 tree res_op0;
18115 res_op0 = captures[0];
18116 tree res_op1;
18117 {
18118 tree ops1[1], res;
18119 ops1[0] = captures[1];
18120 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
18121 res_op1 = res;
18122 }
18123 tree res;
18124 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18125 return res;
18126 }
18127 }
18128 }
18129 }
18130 break;
18131 }
18132 case ABS_EXPR:
18133 {
18134 tree o20 = TREE_OPERAND (op0, 0);
18135 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18136 {
18137 {
18138/* #line 436 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18139 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
18140 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:436, %s:%d\n", __FILE__, __LINE__);
18141 if (! tree_invariant_p (captures[1])) return NULL_TREE;
18142 tree res_op0;
18143 res_op0 = unshare_expr (captures[1]);
18144 tree res_op1;
18145 res_op1 = captures[1];
18146 tree res;
18147 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
18148 return res;
18149 }
18150 }
18151 break;
18152 }
18153 case CALL_EXPR:
18154 switch (get_call_combined_fn (op0))
18155 {
18156 case CFN_BUILT_IN_COPYSIGNF:
18157 {
18158 tree o20 = CALL_EXPR_ARG (op0, 0);
18159 tree o21 = CALL_EXPR_ARG (op0, 1);
18160 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18161 {
18162 {
18163/* #line 490 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18164 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
18165 tree res = generic_simplify_24 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
18166 if (res) return res;
18167 }
18168 }
18169 break;
18170 }
18171 case CFN_BUILT_IN_COPYSIGN:
18172 {
18173 tree o20 = CALL_EXPR_ARG (op0, 0);
18174 tree o21 = CALL_EXPR_ARG (op0, 1);
18175 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18176 {
18177 {
18178/* #line 490 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18179 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
18180 tree res = generic_simplify_24 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
18181 if (res) return res;
18182 }
18183 }
18184 break;
18185 }
18186 case CFN_BUILT_IN_COPYSIGNL:
18187 {
18188 tree o20 = CALL_EXPR_ARG (op0, 0);
18189 tree o21 = CALL_EXPR_ARG (op0, 1);
18190 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18191 {
18192 {
18193/* #line 490 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18194 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
18195 tree res = generic_simplify_24 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
18196 if (res) return res;
18197 }
18198 }
18199 break;
18200 }
18201 case CFN_COPYSIGN:
18202 {
18203 tree o20 = CALL_EXPR_ARG (op0, 0);
18204 tree o21 = CALL_EXPR_ARG (op0, 1);
18205 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18206 {
18207 {
18208/* #line 490 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18209 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
18210 tree res = generic_simplify_24 (loc, type, op0, op1, captures, CFN_COPYSIGN);
18211 if (res) return res;
18212 }
18213 }
18214 break;
18215 }
18216 default:;
18217 }
18218 break;
18219 default:;
18220 }
18221 switch (TREE_CODE (op1))
18222 {
18223 CASE_CONVERT:
18224 {
18225 tree o30 = TREE_OPERAND (op1, 0);
18226 switch (TREE_CODE (o30))
18227 {
18228 case LSHIFT_EXPR:
18229 {
18230 tree o40 = TREE_OPERAND (o30, 0);
18231 tree o41 = TREE_OPERAND (o30, 1);
18232 if (integer_onep (o40))
18233 {
18234 {
18235/* #line 508 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18236 tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o41 };
18237 tree res = generic_simplify_139 (loc, type, op0, op1, captures);
18238 if (res) return res;
18239 }
18240 }
18241 break;
18242 }
18243 default:;
18244 }
18245 break;
18246 }
18247 default:;
18248 }
18249 switch (TREE_CODE (op0))
18250 {
18251 CASE_CONVERT:
18252 {
18253 tree o20 = TREE_OPERAND (op0, 0);
18254 switch (TREE_CODE (o20))
18255 {
18256 case LSHIFT_EXPR:
18257 {
18258 tree o30 = TREE_OPERAND (o20, 0);
18259 tree o31 = TREE_OPERAND (o20, 1);
18260 if (integer_onep (o30))
18261 {
18262 {
18263/* #line 508 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18264 tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, o31 };
18265 tree res = generic_simplify_139 (loc, type, op0, op1, captures);
18266 if (res) return res;
18267 }
18268 }
18269 break;
18270 }
18271 default:;
18272 }
18273 break;
18274 }
18275 default:;
18276 }
18277 switch (TREE_CODE (op1))
18278 {
18279 case LSHIFT_EXPR:
18280 {
18281 tree o30 = TREE_OPERAND (op1, 0);
18282 tree o31 = TREE_OPERAND (op1, 1);
18283 if (integer_onep (o30))
18284 {
18285 {
18286/* #line 508 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18287 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
18288 tree res = generic_simplify_139 (loc, type, op0, op1, captures);
18289 if (res) return res;
18290 }
18291 }
18292 break;
18293 }
18294 default:;
18295 }
18296 switch (TREE_CODE (op0))
18297 {
18298 case LSHIFT_EXPR:
18299 {
18300 tree o20 = TREE_OPERAND (op0, 0);
18301 tree o21 = TREE_OPERAND (op0, 1);
18302 if (integer_onep (o20))
18303 {
18304 {
18305/* #line 508 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18306 tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
18307 tree res = generic_simplify_139 (loc, type, op0, op1, captures);
18308 if (res) return res;
18309 }
18310 }
18311 break;
18312 }
18313 case RDIV_EXPR:
18314 {
18315 tree o20 = TREE_OPERAND (op0, 0);
18316 tree o21 = TREE_OPERAND (op0, 1);
18317 switch (TREE_CODE (o20))
18318 {
18319 case REAL_CST:
18320 {
18321 switch (TREE_CODE (op1))
18322 {
18323 case REAL_CST:
18324 {
18325 {
18326/* #line 515 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18327 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
18328/* #line 515 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18329 if (flag_associative_math && single_use (captures[0]))
18330 {
18331 {
18332/* #line 517 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18333 tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
18334/* #line 519 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18335 if (tem)
18336 {
18337 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
18338 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
18339 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:520, %s:%d\n", __FILE__, __LINE__);
18340 tree res_op0;
18341 res_op0 = tem;
18342 tree res_op1;
18343 res_op1 = captures[2];
18344 tree res;
18345 res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
18346 return res;
18347 }
18348 }
18349 }
18350 }
18351 break;
18352 }
18353 default:;
18354 }
18355 break;
18356 }
18357 default:;
18358 }
18359 break;
18360 }
18361 CASE_CONVERT:
18362 {
18363 tree o20 = TREE_OPERAND (op0, 0);
18364 switch (TREE_CODE (o20))
18365 {
18366 case NEGATE_EXPR:
18367 {
18368 tree o30 = TREE_OPERAND (o20, 0);
18369 switch (TREE_CODE (op1))
18370 {
18371 CASE_CONVERT:
18372 {
18373 tree o50 = TREE_OPERAND (op1, 0);
18374 if (tree_negate_expr_p (o50))
18375 {
18376 {
18377/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18378 tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
18379 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18380 if (res) return res;
18381 }
18382 }
18383 break;
18384 }
18385 default:;
18386 }
18387 if (tree_negate_expr_p (op1))
18388 {
18389 {
18390/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18391 tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
18392 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18393 if (res) return res;
18394 }
18395 }
18396 break;
18397 }
18398 case EXACT_DIV_EXPR:
18399 {
18400 tree o30 = TREE_OPERAND (o20, 0);
18401 tree o31 = TREE_OPERAND (o20, 1);
18402 switch (TREE_CODE (op1))
18403 {
18404 CASE_CONVERT:
18405 {
18406 tree o60 = TREE_OPERAND (op1, 0);
18407 if (o60 == o31 || operand_equal_p (o60, o31, 0))
18408 {
18409 {
18410/* #line 1887 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18411 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
18412 tree res = generic_simplify_220 (loc, type, op0, op1, captures);
18413 if (res) return res;
18414 }
18415 }
18416 break;
18417 }
18418 default:;
18419 }
18420 if (op1 == o31 || operand_equal_p (op1, o31, 0))
18421 {
18422 {
18423/* #line 1887 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18424 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
18425 tree res = generic_simplify_220 (loc, type, op0, op1, captures);
18426 if (res) return res;
18427 }
18428 }
18429 break;
18430 }
18431 default:;
18432 }
18433 if (tree_negate_expr_p (o20))
18434 {
18435 switch (TREE_CODE (op1))
18436 {
18437 CASE_CONVERT:
18438 {
18439 tree o40 = TREE_OPERAND (op1, 0);
18440 switch (TREE_CODE (o40))
18441 {
18442 case NEGATE_EXPR:
18443 {
18444 tree o50 = TREE_OPERAND (o40, 0);
18445 {
18446/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18447 tree captures[2] ATTRIBUTE_UNUSED = { o50, o20 };
18448 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18449 if (res) return res;
18450 }
18451 break;
18452 }
18453 default:;
18454 }
18455 break;
18456 }
18457 case NEGATE_EXPR:
18458 {
18459 tree o40 = TREE_OPERAND (op1, 0);
18460 {
18461/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18462 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
18463 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18464 if (res) return res;
18465 }
18466 break;
18467 }
18468 default:;
18469 }
18470 }
18471 break;
18472 }
18473 case NEGATE_EXPR:
18474 {
18475 tree o20 = TREE_OPERAND (op0, 0);
18476 switch (TREE_CODE (op1))
18477 {
18478 CASE_CONVERT:
18479 {
18480 tree o40 = TREE_OPERAND (op1, 0);
18481 if (tree_negate_expr_p (o40))
18482 {
18483 {
18484/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18485 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
18486 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18487 if (res) return res;
18488 }
18489 }
18490 break;
18491 }
18492 default:;
18493 }
18494 if (tree_negate_expr_p (op1))
18495 {
18496 {
18497/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18498 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
18499 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18500 if (res) return res;
18501 }
18502 }
18503 break;
18504 }
18505 case EXACT_DIV_EXPR:
18506 {
18507 tree o20 = TREE_OPERAND (op0, 0);
18508 tree o21 = TREE_OPERAND (op0, 1);
18509 switch (TREE_CODE (op1))
18510 {
18511 CASE_CONVERT:
18512 {
18513 tree o50 = TREE_OPERAND (op1, 0);
18514 if (o50 == o21 || operand_equal_p (o50, o21, 0))
18515 {
18516 {
18517/* #line 1887 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18518 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
18519 tree res = generic_simplify_220 (loc, type, op0, op1, captures);
18520 if (res) return res;
18521 }
18522 }
18523 break;
18524 }
18525 default:;
18526 }
18527 if (op1 == o21 || operand_equal_p (op1, o21, 0))
18528 {
18529 {
18530/* #line 1887 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18531 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
18532 tree res = generic_simplify_220 (loc, type, op0, op1, captures);
18533 if (res) return res;
18534 }
18535 }
18536 break;
18537 }
18538 default:;
18539 }
18540if (tree_negate_expr_p (op0))
18541 {
18542 switch (TREE_CODE (op1))
18543 {
18544 CASE_CONVERT:
18545 {
18546 tree o30 = TREE_OPERAND (op1, 0);
18547 switch (TREE_CODE (o30))
18548 {
18549 case NEGATE_EXPR:
18550 {
18551 tree o40 = TREE_OPERAND (o30, 0);
18552 {
18553/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18554 tree captures[2] ATTRIBUTE_UNUSED = { o40, op0 };
18555 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18556 if (res) return res;
18557 }
18558 break;
18559 }
18560 default:;
18561 }
18562 break;
18563 }
18564 case NEGATE_EXPR:
18565 {
18566 tree o30 = TREE_OPERAND (op1, 0);
18567 {
18568/* #line 859 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18569 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
18570 tree res = generic_simplify_147 (loc, type, op0, op1, captures);
18571 if (res) return res;
18572 }
18573 break;
18574 }
18575 default:;
18576 }
18577 }
18578 if (integer_minus_onep (op1))
18579 {
18580 {
18581/* #line 1922 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18582 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
18583 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
18584 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1922, %s:%d\n", __FILE__, __LINE__);
18585 tree res_op0;
18586 res_op0 = captures[0];
18587 tree res;
18588 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
18589 return res;
18590 }
18591 }
18592 switch (TREE_CODE (op0))
18593 {
18594 case CALL_EXPR:
18595 switch (get_call_combined_fn (op0))
18596 {
18597 case CFN_BUILT_IN_SQRTF:
18598 {
18599 tree o20 = CALL_EXPR_ARG (op0, 0);
18600 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18601 {
18602 {
18603/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18604 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
18605 tree res = generic_simplify_2 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF);
18606 if (res) return res;
18607 }
18608 }
18609 switch (TREE_CODE (op1))
18610 {
18611 case CALL_EXPR:
18612 switch (get_call_combined_fn (op1))
18613 {
18614 case CFN_BUILT_IN_SQRTF:
18615 {
18616 tree o40 = CALL_EXPR_ARG (op1, 0);
18617 {
18618/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18619 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18620/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18621 if (flag_unsafe_math_optimizations)
18622 {
18623 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18624 tree res_op0;
18625 {
18626 tree ops1[2], res;
18627 ops1[0] = captures[1];
18628 ops1[1] = captures[3];
18629 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18630 res_op0 = res;
18631 }
18632 tree res;
18633 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
18634 if (!res)
18635 return NULL_TREE;
18636 return res;
18637 }
18638 }
18639 break;
18640 }
18641 default:;
18642 }
18643 break;
18644 default:;
18645 }
18646 break;
18647 }
18648 case CFN_BUILT_IN_SQRT:
18649 {
18650 tree o20 = CALL_EXPR_ARG (op0, 0);
18651 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18652 {
18653 {
18654/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18655 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
18656 tree res = generic_simplify_2 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT);
18657 if (res) return res;
18658 }
18659 }
18660 switch (TREE_CODE (op1))
18661 {
18662 case CALL_EXPR:
18663 switch (get_call_combined_fn (op1))
18664 {
18665 case CFN_BUILT_IN_SQRT:
18666 {
18667 tree o40 = CALL_EXPR_ARG (op1, 0);
18668 {
18669/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18670 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18671/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18672 if (flag_unsafe_math_optimizations)
18673 {
18674 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18675 tree res_op0;
18676 {
18677 tree ops1[2], res;
18678 ops1[0] = captures[1];
18679 ops1[1] = captures[3];
18680 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18681 res_op0 = res;
18682 }
18683 tree res;
18684 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
18685 if (!res)
18686 return NULL_TREE;
18687 return res;
18688 }
18689 }
18690 break;
18691 }
18692 default:;
18693 }
18694 break;
18695 default:;
18696 }
18697 break;
18698 }
18699 case CFN_BUILT_IN_SQRTL:
18700 {
18701 tree o20 = CALL_EXPR_ARG (op0, 0);
18702 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18703 {
18704 {
18705/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18706 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
18707 tree res = generic_simplify_2 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL);
18708 if (res) return res;
18709 }
18710 }
18711 switch (TREE_CODE (op1))
18712 {
18713 case CALL_EXPR:
18714 switch (get_call_combined_fn (op1))
18715 {
18716 case CFN_BUILT_IN_SQRTL:
18717 {
18718 tree o40 = CALL_EXPR_ARG (op1, 0);
18719 {
18720/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18721 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18722/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18723 if (flag_unsafe_math_optimizations)
18724 {
18725 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18726 tree res_op0;
18727 {
18728 tree ops1[2], res;
18729 ops1[0] = captures[1];
18730 ops1[1] = captures[3];
18731 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18732 res_op0 = res;
18733 }
18734 tree res;
18735 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
18736 if (!res)
18737 return NULL_TREE;
18738 return res;
18739 }
18740 }
18741 break;
18742 }
18743 default:;
18744 }
18745 break;
18746 default:;
18747 }
18748 break;
18749 }
18750 case CFN_SQRT:
18751 {
18752 tree o20 = CALL_EXPR_ARG (op0, 0);
18753 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
18754 {
18755 {
18756/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18757 tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
18758 tree res = generic_simplify_2 (loc, type, op0, op1, captures, CFN_SQRT);
18759 if (res) return res;
18760 }
18761 }
18762 switch (TREE_CODE (op1))
18763 {
18764 case CALL_EXPR:
18765 switch (get_call_combined_fn (op1))
18766 {
18767 case CFN_SQRT:
18768 {
18769 tree o40 = CALL_EXPR_ARG (op1, 0);
18770 {
18771/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18772 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18773/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18774 if (flag_unsafe_math_optimizations)
18775 {
18776 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18777 tree res_op0;
18778 {
18779 tree ops1[2], res;
18780 ops1[0] = captures[1];
18781 ops1[1] = captures[3];
18782 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18783 res_op0 = res;
18784 }
18785 tree res;
18786 res = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
18787 if (!res)
18788 return NULL_TREE;
18789 return res;
18790 }
18791 }
18792 break;
18793 }
18794 default:;
18795 }
18796 break;
18797 default:;
18798 }
18799 break;
18800 }
18801 case CFN_BUILT_IN_CBRTF:
18802 {
18803 tree o20 = CALL_EXPR_ARG (op0, 0);
18804 switch (TREE_CODE (op1))
18805 {
18806 case CALL_EXPR:
18807 switch (get_call_combined_fn (op1))
18808 {
18809 case CFN_BUILT_IN_CBRTF:
18810 {
18811 tree o40 = CALL_EXPR_ARG (op1, 0);
18812 {
18813/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18814 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18815/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18816 if (flag_unsafe_math_optimizations)
18817 {
18818 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18819 tree res_op0;
18820 {
18821 tree ops1[2], res;
18822 ops1[0] = captures[1];
18823 ops1[1] = captures[3];
18824 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18825 res_op0 = res;
18826 }
18827 tree res;
18828 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
18829 if (!res)
18830 return NULL_TREE;
18831 return res;
18832 }
18833 }
18834 break;
18835 }
18836 default:;
18837 }
18838 break;
18839 default:;
18840 }
18841 break;
18842 }
18843 case CFN_BUILT_IN_CBRT:
18844 {
18845 tree o20 = CALL_EXPR_ARG (op0, 0);
18846 switch (TREE_CODE (op1))
18847 {
18848 case CALL_EXPR:
18849 switch (get_call_combined_fn (op1))
18850 {
18851 case CFN_BUILT_IN_CBRT:
18852 {
18853 tree o40 = CALL_EXPR_ARG (op1, 0);
18854 {
18855/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18856 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18857/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18858 if (flag_unsafe_math_optimizations)
18859 {
18860 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18861 tree res_op0;
18862 {
18863 tree ops1[2], res;
18864 ops1[0] = captures[1];
18865 ops1[1] = captures[3];
18866 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18867 res_op0 = res;
18868 }
18869 tree res;
18870 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
18871 if (!res)
18872 return NULL_TREE;
18873 return res;
18874 }
18875 }
18876 break;
18877 }
18878 default:;
18879 }
18880 break;
18881 default:;
18882 }
18883 break;
18884 }
18885 case CFN_BUILT_IN_CBRTL:
18886 {
18887 tree o20 = CALL_EXPR_ARG (op0, 0);
18888 switch (TREE_CODE (op1))
18889 {
18890 case CALL_EXPR:
18891 switch (get_call_combined_fn (op1))
18892 {
18893 case CFN_BUILT_IN_CBRTL:
18894 {
18895 tree o40 = CALL_EXPR_ARG (op1, 0);
18896 {
18897/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18898 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18899/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18900 if (flag_unsafe_math_optimizations)
18901 {
18902 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3120, %s:%d\n", __FILE__, __LINE__);
18903 tree res_op0;
18904 {
18905 tree ops1[2], res;
18906 ops1[0] = captures[1];
18907 ops1[1] = captures[3];
18908 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18909 res_op0 = res;
18910 }
18911 tree res;
18912 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
18913 if (!res)
18914 return NULL_TREE;
18915 return res;
18916 }
18917 }
18918 break;
18919 }
18920 default:;
18921 }
18922 break;
18923 default:;
18924 }
18925 break;
18926 }
18927 case CFN_BUILT_IN_EXPF:
18928 {
18929 tree o20 = CALL_EXPR_ARG (op0, 0);
18930 switch (TREE_CODE (op1))
18931 {
18932 case CALL_EXPR:
18933 switch (get_call_combined_fn (op1))
18934 {
18935 case CFN_BUILT_IN_EXPF:
18936 {
18937 tree o40 = CALL_EXPR_ARG (op1, 0);
18938 {
18939/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18940 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18941/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18942 if (flag_unsafe_math_optimizations)
18943 {
18944 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
18945 tree res_op0;
18946 {
18947 tree ops1[2], res;
18948 ops1[0] = captures[1];
18949 ops1[1] = captures[3];
18950 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18951 res_op0 = res;
18952 }
18953 tree res;
18954 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
18955 if (!res)
18956 return NULL_TREE;
18957 return res;
18958 }
18959 }
18960 break;
18961 }
18962 default:;
18963 }
18964 break;
18965 default:;
18966 }
18967 break;
18968 }
18969 case CFN_BUILT_IN_EXP:
18970 {
18971 tree o20 = CALL_EXPR_ARG (op0, 0);
18972 switch (TREE_CODE (op1))
18973 {
18974 case CALL_EXPR:
18975 switch (get_call_combined_fn (op1))
18976 {
18977 case CFN_BUILT_IN_EXP:
18978 {
18979 tree o40 = CALL_EXPR_ARG (op1, 0);
18980 {
18981/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18982 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
18983/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
18984 if (flag_unsafe_math_optimizations)
18985 {
18986 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
18987 tree res_op0;
18988 {
18989 tree ops1[2], res;
18990 ops1[0] = captures[1];
18991 ops1[1] = captures[3];
18992 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
18993 res_op0 = res;
18994 }
18995 tree res;
18996 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
18997 if (!res)
18998 return NULL_TREE;
18999 return res;
19000 }
19001 }
19002 break;
19003 }
19004 default:;
19005 }
19006 break;
19007 default:;
19008 }
19009 break;
19010 }
19011 case CFN_BUILT_IN_EXPL:
19012 {
19013 tree o20 = CALL_EXPR_ARG (op0, 0);
19014 switch (TREE_CODE (op1))
19015 {
19016 case CALL_EXPR:
19017 switch (get_call_combined_fn (op1))
19018 {
19019 case CFN_BUILT_IN_EXPL:
19020 {
19021 tree o40 = CALL_EXPR_ARG (op1, 0);
19022 {
19023/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19024 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19025/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19026 if (flag_unsafe_math_optimizations)
19027 {
19028 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19029 tree res_op0;
19030 {
19031 tree ops1[2], res;
19032 ops1[0] = captures[1];
19033 ops1[1] = captures[3];
19034 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19035 res_op0 = res;
19036 }
19037 tree res;
19038 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
19039 if (!res)
19040 return NULL_TREE;
19041 return res;
19042 }
19043 }
19044 break;
19045 }
19046 default:;
19047 }
19048 break;
19049 default:;
19050 }
19051 break;
19052 }
19053 case CFN_EXP:
19054 {
19055 tree o20 = CALL_EXPR_ARG (op0, 0);
19056 switch (TREE_CODE (op1))
19057 {
19058 case CALL_EXPR:
19059 switch (get_call_combined_fn (op1))
19060 {
19061 case CFN_EXP:
19062 {
19063 tree o40 = CALL_EXPR_ARG (op1, 0);
19064 {
19065/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19066 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19067/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19068 if (flag_unsafe_math_optimizations)
19069 {
19070 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19071 tree res_op0;
19072 {
19073 tree ops1[2], res;
19074 ops1[0] = captures[1];
19075 ops1[1] = captures[3];
19076 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19077 res_op0 = res;
19078 }
19079 tree res;
19080 res = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
19081 if (!res)
19082 return NULL_TREE;
19083 return res;
19084 }
19085 }
19086 break;
19087 }
19088 default:;
19089 }
19090 break;
19091 default:;
19092 }
19093 break;
19094 }
19095 case CFN_BUILT_IN_EXP2F:
19096 {
19097 tree o20 = CALL_EXPR_ARG (op0, 0);
19098 switch (TREE_CODE (op1))
19099 {
19100 case CALL_EXPR:
19101 switch (get_call_combined_fn (op1))
19102 {
19103 case CFN_BUILT_IN_EXP2F:
19104 {
19105 tree o40 = CALL_EXPR_ARG (op1, 0);
19106 {
19107/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19108 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19109/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19110 if (flag_unsafe_math_optimizations)
19111 {
19112 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19113 tree res_op0;
19114 {
19115 tree ops1[2], res;
19116 ops1[0] = captures[1];
19117 ops1[1] = captures[3];
19118 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19119 res_op0 = res;
19120 }
19121 tree res;
19122 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
19123 if (!res)
19124 return NULL_TREE;
19125 return res;
19126 }
19127 }
19128 break;
19129 }
19130 default:;
19131 }
19132 break;
19133 default:;
19134 }
19135 break;
19136 }
19137 case CFN_BUILT_IN_EXP2:
19138 {
19139 tree o20 = CALL_EXPR_ARG (op0, 0);
19140 switch (TREE_CODE (op1))
19141 {
19142 case CALL_EXPR:
19143 switch (get_call_combined_fn (op1))
19144 {
19145 case CFN_BUILT_IN_EXP2:
19146 {
19147 tree o40 = CALL_EXPR_ARG (op1, 0);
19148 {
19149/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19150 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19151/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19152 if (flag_unsafe_math_optimizations)
19153 {
19154 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19155 tree res_op0;
19156 {
19157 tree ops1[2], res;
19158 ops1[0] = captures[1];
19159 ops1[1] = captures[3];
19160 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19161 res_op0 = res;
19162 }
19163 tree res;
19164 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
19165 if (!res)
19166 return NULL_TREE;
19167 return res;
19168 }
19169 }
19170 break;
19171 }
19172 default:;
19173 }
19174 break;
19175 default:;
19176 }
19177 break;
19178 }
19179 case CFN_BUILT_IN_EXP2L:
19180 {
19181 tree o20 = CALL_EXPR_ARG (op0, 0);
19182 switch (TREE_CODE (op1))
19183 {
19184 case CALL_EXPR:
19185 switch (get_call_combined_fn (op1))
19186 {
19187 case CFN_BUILT_IN_EXP2L:
19188 {
19189 tree o40 = CALL_EXPR_ARG (op1, 0);
19190 {
19191/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19192 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19193/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19194 if (flag_unsafe_math_optimizations)
19195 {
19196 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19197 tree res_op0;
19198 {
19199 tree ops1[2], res;
19200 ops1[0] = captures[1];
19201 ops1[1] = captures[3];
19202 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19203 res_op0 = res;
19204 }
19205 tree res;
19206 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
19207 if (!res)
19208 return NULL_TREE;
19209 return res;
19210 }
19211 }
19212 break;
19213 }
19214 default:;
19215 }
19216 break;
19217 default:;
19218 }
19219 break;
19220 }
19221 case CFN_EXP2:
19222 {
19223 tree o20 = CALL_EXPR_ARG (op0, 0);
19224 switch (TREE_CODE (op1))
19225 {
19226 case CALL_EXPR:
19227 switch (get_call_combined_fn (op1))
19228 {
19229 case CFN_EXP2:
19230 {
19231 tree o40 = CALL_EXPR_ARG (op1, 0);
19232 {
19233/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19234 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19235/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19236 if (flag_unsafe_math_optimizations)
19237 {
19238 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19239 tree res_op0;
19240 {
19241 tree ops1[2], res;
19242 ops1[0] = captures[1];
19243 ops1[1] = captures[3];
19244 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19245 res_op0 = res;
19246 }
19247 tree res;
19248 res = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
19249 if (!res)
19250 return NULL_TREE;
19251 return res;
19252 }
19253 }
19254 break;
19255 }
19256 default:;
19257 }
19258 break;
19259 default:;
19260 }
19261 break;
19262 }
19263 case CFN_BUILT_IN_EXP10F:
19264 {
19265 tree o20 = CALL_EXPR_ARG (op0, 0);
19266 switch (TREE_CODE (op1))
19267 {
19268 case CALL_EXPR:
19269 switch (get_call_combined_fn (op1))
19270 {
19271 case CFN_BUILT_IN_EXP10F:
19272 {
19273 tree o40 = CALL_EXPR_ARG (op1, 0);
19274 {
19275/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19276 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19277/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19278 if (flag_unsafe_math_optimizations)
19279 {
19280 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19281 tree res_op0;
19282 {
19283 tree ops1[2], res;
19284 ops1[0] = captures[1];
19285 ops1[1] = captures[3];
19286 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19287 res_op0 = res;
19288 }
19289 tree res;
19290 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
19291 if (!res)
19292 return NULL_TREE;
19293 return res;
19294 }
19295 }
19296 break;
19297 }
19298 default:;
19299 }
19300 break;
19301 default:;
19302 }
19303 break;
19304 }
19305 case CFN_BUILT_IN_EXP10:
19306 {
19307 tree o20 = CALL_EXPR_ARG (op0, 0);
19308 switch (TREE_CODE (op1))
19309 {
19310 case CALL_EXPR:
19311 switch (get_call_combined_fn (op1))
19312 {
19313 case CFN_BUILT_IN_EXP10:
19314 {
19315 tree o40 = CALL_EXPR_ARG (op1, 0);
19316 {
19317/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19318 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19319/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19320 if (flag_unsafe_math_optimizations)
19321 {
19322 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19323 tree res_op0;
19324 {
19325 tree ops1[2], res;
19326 ops1[0] = captures[1];
19327 ops1[1] = captures[3];
19328 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19329 res_op0 = res;
19330 }
19331 tree res;
19332 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
19333 if (!res)
19334 return NULL_TREE;
19335 return res;
19336 }
19337 }
19338 break;
19339 }
19340 default:;
19341 }
19342 break;
19343 default:;
19344 }
19345 break;
19346 }
19347 case CFN_BUILT_IN_EXP10L:
19348 {
19349 tree o20 = CALL_EXPR_ARG (op0, 0);
19350 switch (TREE_CODE (op1))
19351 {
19352 case CALL_EXPR:
19353 switch (get_call_combined_fn (op1))
19354 {
19355 case CFN_BUILT_IN_EXP10L:
19356 {
19357 tree o40 = CALL_EXPR_ARG (op1, 0);
19358 {
19359/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19360 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19361/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19362 if (flag_unsafe_math_optimizations)
19363 {
19364 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19365 tree res_op0;
19366 {
19367 tree ops1[2], res;
19368 ops1[0] = captures[1];
19369 ops1[1] = captures[3];
19370 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19371 res_op0 = res;
19372 }
19373 tree res;
19374 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
19375 if (!res)
19376 return NULL_TREE;
19377 return res;
19378 }
19379 }
19380 break;
19381 }
19382 default:;
19383 }
19384 break;
19385 default:;
19386 }
19387 break;
19388 }
19389 case CFN_EXP10:
19390 {
19391 tree o20 = CALL_EXPR_ARG (op0, 0);
19392 switch (TREE_CODE (op1))
19393 {
19394 case CALL_EXPR:
19395 switch (get_call_combined_fn (op1))
19396 {
19397 case CFN_EXP10:
19398 {
19399 tree o40 = CALL_EXPR_ARG (op1, 0);
19400 {
19401/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19402 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19403/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19404 if (flag_unsafe_math_optimizations)
19405 {
19406 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19407 tree res_op0;
19408 {
19409 tree ops1[2], res;
19410 ops1[0] = captures[1];
19411 ops1[1] = captures[3];
19412 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19413 res_op0 = res;
19414 }
19415 tree res;
19416 res = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
19417 if (!res)
19418 return NULL_TREE;
19419 return res;
19420 }
19421 }
19422 break;
19423 }
19424 default:;
19425 }
19426 break;
19427 default:;
19428 }
19429 break;
19430 }
19431 case CFN_BUILT_IN_POW10F:
19432 {
19433 tree o20 = CALL_EXPR_ARG (op0, 0);
19434 switch (TREE_CODE (op1))
19435 {
19436 case CALL_EXPR:
19437 switch (get_call_combined_fn (op1))
19438 {
19439 case CFN_BUILT_IN_POW10F:
19440 {
19441 tree o40 = CALL_EXPR_ARG (op1, 0);
19442 {
19443/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19444 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19445/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19446 if (flag_unsafe_math_optimizations)
19447 {
19448 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19449 tree res_op0;
19450 {
19451 tree ops1[2], res;
19452 ops1[0] = captures[1];
19453 ops1[1] = captures[3];
19454 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19455 res_op0 = res;
19456 }
19457 tree res;
19458 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
19459 if (!res)
19460 return NULL_TREE;
19461 return res;
19462 }
19463 }
19464 break;
19465 }
19466 default:;
19467 }
19468 break;
19469 default:;
19470 }
19471 break;
19472 }
19473 case CFN_BUILT_IN_POW10:
19474 {
19475 tree o20 = CALL_EXPR_ARG (op0, 0);
19476 switch (TREE_CODE (op1))
19477 {
19478 case CALL_EXPR:
19479 switch (get_call_combined_fn (op1))
19480 {
19481 case CFN_BUILT_IN_POW10:
19482 {
19483 tree o40 = CALL_EXPR_ARG (op1, 0);
19484 {
19485/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19486 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19487/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19488 if (flag_unsafe_math_optimizations)
19489 {
19490 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19491 tree res_op0;
19492 {
19493 tree ops1[2], res;
19494 ops1[0] = captures[1];
19495 ops1[1] = captures[3];
19496 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19497 res_op0 = res;
19498 }
19499 tree res;
19500 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
19501 if (!res)
19502 return NULL_TREE;
19503 return res;
19504 }
19505 }
19506 break;
19507 }
19508 default:;
19509 }
19510 break;
19511 default:;
19512 }
19513 break;
19514 }
19515 case CFN_BUILT_IN_POW10L:
19516 {
19517 tree o20 = CALL_EXPR_ARG (op0, 0);
19518 switch (TREE_CODE (op1))
19519 {
19520 case CALL_EXPR:
19521 switch (get_call_combined_fn (op1))
19522 {
19523 case CFN_BUILT_IN_POW10L:
19524 {
19525 tree o40 = CALL_EXPR_ARG (op1, 0);
19526 {
19527/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19528 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
19529/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19530 if (flag_unsafe_math_optimizations)
19531 {
19532 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3126, %s:%d\n", __FILE__, __LINE__);
19533 tree res_op0;
19534 {
19535 tree ops1[2], res;
19536 ops1[0] = captures[1];
19537 ops1[1] = captures[3];
19538 res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
19539 res_op0 = res;
19540 }
19541 tree res;
19542 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
19543 if (!res)
19544 return NULL_TREE;
19545 return res;
19546 }
19547 }
19548 break;
19549 }
19550 default:;
19551 }
19552 break;
19553 default:;
19554 }
19555 break;
19556 }
19557 case CFN_BUILT_IN_TANF:
19558 {
19559 tree o20 = CALL_EXPR_ARG (op0, 0);
19560 switch (TREE_CODE (op1))
19561 {
19562 case CALL_EXPR:
19563 switch (get_call_combined_fn (op1))
19564 {
19565 case CFN_BUILT_IN_COSF:
19566 {
19567 tree o40 = CALL_EXPR_ARG (op1, 0);
19568 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19569 {
19570 {
19571/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19572 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
19573 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
19574 if (res) return res;
19575 }
19576 }
19577 break;
19578 }
19579 default:;
19580 }
19581 break;
19582 default:;
19583 }
19584 break;
19585 }
19586 case CFN_BUILT_IN_TAN:
19587 {
19588 tree o20 = CALL_EXPR_ARG (op0, 0);
19589 switch (TREE_CODE (op1))
19590 {
19591 case CALL_EXPR:
19592 switch (get_call_combined_fn (op1))
19593 {
19594 case CFN_BUILT_IN_COS:
19595 {
19596 tree o40 = CALL_EXPR_ARG (op1, 0);
19597 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19598 {
19599 {
19600/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19601 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
19602 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
19603 if (res) return res;
19604 }
19605 }
19606 break;
19607 }
19608 default:;
19609 }
19610 break;
19611 default:;
19612 }
19613 break;
19614 }
19615 case CFN_BUILT_IN_TANL:
19616 {
19617 tree o20 = CALL_EXPR_ARG (op0, 0);
19618 switch (TREE_CODE (op1))
19619 {
19620 case CALL_EXPR:
19621 switch (get_call_combined_fn (op1))
19622 {
19623 case CFN_BUILT_IN_COSL:
19624 {
19625 tree o40 = CALL_EXPR_ARG (op1, 0);
19626 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19627 {
19628 {
19629/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19630 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
19631 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
19632 if (res) return res;
19633 }
19634 }
19635 break;
19636 }
19637 default:;
19638 }
19639 break;
19640 default:;
19641 }
19642 break;
19643 }
19644 case CFN_TAN:
19645 {
19646 tree o20 = CALL_EXPR_ARG (op0, 0);
19647 switch (TREE_CODE (op1))
19648 {
19649 case CALL_EXPR:
19650 switch (get_call_combined_fn (op1))
19651 {
19652 case CFN_COS:
19653 {
19654 tree o40 = CALL_EXPR_ARG (op1, 0);
19655 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19656 {
19657 {
19658/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19659 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
19660 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_TAN, CFN_COS, CFN_SIN);
19661 if (res) return res;
19662 }
19663 }
19664 break;
19665 }
19666 default:;
19667 }
19668 break;
19669 default:;
19670 }
19671 break;
19672 }
19673 case CFN_BUILT_IN_COSF:
19674 {
19675 tree o20 = CALL_EXPR_ARG (op0, 0);
19676 switch (TREE_CODE (op1))
19677 {
19678 case CALL_EXPR:
19679 switch (get_call_combined_fn (op1))
19680 {
19681 case CFN_BUILT_IN_TANF:
19682 {
19683 tree o40 = CALL_EXPR_ARG (op1, 0);
19684 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19685 {
19686 {
19687/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19688 tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
19689 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
19690 if (res) return res;
19691 }
19692 }
19693 break;
19694 }
19695 default:;
19696 }
19697 break;
19698 default:;
19699 }
19700 break;
19701 }
19702 case CFN_BUILT_IN_COS:
19703 {
19704 tree o20 = CALL_EXPR_ARG (op0, 0);
19705 switch (TREE_CODE (op1))
19706 {
19707 case CALL_EXPR:
19708 switch (get_call_combined_fn (op1))
19709 {
19710 case CFN_BUILT_IN_TAN:
19711 {
19712 tree o40 = CALL_EXPR_ARG (op1, 0);
19713 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19714 {
19715 {
19716/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19717 tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
19718 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
19719 if (res) return res;
19720 }
19721 }
19722 break;
19723 }
19724 default:;
19725 }
19726 break;
19727 default:;
19728 }
19729 break;
19730 }
19731 case CFN_BUILT_IN_COSL:
19732 {
19733 tree o20 = CALL_EXPR_ARG (op0, 0);
19734 switch (TREE_CODE (op1))
19735 {
19736 case CALL_EXPR:
19737 switch (get_call_combined_fn (op1))
19738 {
19739 case CFN_BUILT_IN_TANL:
19740 {
19741 tree o40 = CALL_EXPR_ARG (op1, 0);
19742 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19743 {
19744 {
19745/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19746 tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
19747 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
19748 if (res) return res;
19749 }
19750 }
19751 break;
19752 }
19753 default:;
19754 }
19755 break;
19756 default:;
19757 }
19758 break;
19759 }
19760 case CFN_COS:
19761 {
19762 tree o20 = CALL_EXPR_ARG (op0, 0);
19763 switch (TREE_CODE (op1))
19764 {
19765 case CALL_EXPR:
19766 switch (get_call_combined_fn (op1))
19767 {
19768 case CFN_TAN:
19769 {
19770 tree o40 = CALL_EXPR_ARG (op1, 0);
19771 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
19772 {
19773 {
19774/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19775 tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
19776 tree res = generic_simplify_105 (loc, type, op0, op1, captures, CFN_TAN, CFN_COS, CFN_SIN);
19777 if (res) return res;
19778 }
19779 }
19780 break;
19781 }
19782 default:;
19783 }
19784 break;
19785 default:;
19786 }
19787 break;
19788 }
19789 default:;
19790 }
19791 break;
19792 default:;
19793 }
19794 switch (TREE_CODE (op1))
19795 {
19796 case CALL_EXPR:
19797 switch (get_call_combined_fn (op1))
19798 {
19799 case CFN_BUILT_IN_POWF:
19800 {
19801 tree o30 = CALL_EXPR_ARG (op1, 0);
19802 tree o31 = CALL_EXPR_ARG (op1, 1);
19803 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
19804 {
19805 switch (TREE_CODE (o31))
19806 {
19807 case REAL_CST:
19808 {
19809 {
19810/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19811 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
19812 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
19813 if (res) return res;
19814 }
19815 break;
19816 }
19817 default:;
19818 }
19819 }
19820 break;
19821 }
19822 case CFN_BUILT_IN_POW:
19823 {
19824 tree o30 = CALL_EXPR_ARG (op1, 0);
19825 tree o31 = CALL_EXPR_ARG (op1, 1);
19826 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
19827 {
19828 switch (TREE_CODE (o31))
19829 {
19830 case REAL_CST:
19831 {
19832 {
19833/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19834 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
19835 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
19836 if (res) return res;
19837 }
19838 break;
19839 }
19840 default:;
19841 }
19842 }
19843 break;
19844 }
19845 case CFN_BUILT_IN_POWL:
19846 {
19847 tree o30 = CALL_EXPR_ARG (op1, 0);
19848 tree o31 = CALL_EXPR_ARG (op1, 1);
19849 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
19850 {
19851 switch (TREE_CODE (o31))
19852 {
19853 case REAL_CST:
19854 {
19855 {
19856/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19857 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
19858 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
19859 if (res) return res;
19860 }
19861 break;
19862 }
19863 default:;
19864 }
19865 }
19866 break;
19867 }
19868 case CFN_POW:
19869 {
19870 tree o30 = CALL_EXPR_ARG (op1, 0);
19871 tree o31 = CALL_EXPR_ARG (op1, 1);
19872 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
19873 {
19874 switch (TREE_CODE (o31))
19875 {
19876 case REAL_CST:
19877 {
19878 {
19879/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19880 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
19881 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_POW);
19882 if (res) return res;
19883 }
19884 break;
19885 }
19886 default:;
19887 }
19888 }
19889 break;
19890 }
19891 default:;
19892 }
19893 break;
19894 default:;
19895 }
19896 switch (TREE_CODE (op0))
19897 {
19898 case CALL_EXPR:
19899 switch (get_call_combined_fn (op0))
19900 {
19901 case CFN_BUILT_IN_POWF:
19902 {
19903 tree o20 = CALL_EXPR_ARG (op0, 0);
19904 tree o21 = CALL_EXPR_ARG (op0, 1);
19905 switch (TREE_CODE (o21))
19906 {
19907 case REAL_CST:
19908 {
19909 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
19910 {
19911 {
19912/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19913 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
19914 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
19915 if (res) return res;
19916 }
19917 }
19918 break;
19919 }
19920 default:;
19921 }
19922 switch (TREE_CODE (op1))
19923 {
19924 case CALL_EXPR:
19925 switch (get_call_combined_fn (op1))
19926 {
19927 case CFN_BUILT_IN_POWF:
19928 {
19929 tree o50 = CALL_EXPR_ARG (op1, 0);
19930 tree o51 = CALL_EXPR_ARG (op1, 1);
19931 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
19932 {
19933 {
19934/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19935 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
19936 tree res = generic_simplify_83 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
19937 if (res) return res;
19938 }
19939 }
19940 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
19941 {
19942 {
19943/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19944 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
19945 tree res = generic_simplify_170 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
19946 if (res) return res;
19947 }
19948 }
19949 break;
19950 }
19951 default:;
19952 }
19953 break;
19954 default:;
19955 }
19956 break;
19957 }
19958 case CFN_BUILT_IN_POW:
19959 {
19960 tree o20 = CALL_EXPR_ARG (op0, 0);
19961 tree o21 = CALL_EXPR_ARG (op0, 1);
19962 switch (TREE_CODE (o21))
19963 {
19964 case REAL_CST:
19965 {
19966 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
19967 {
19968 {
19969/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19970 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
19971 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
19972 if (res) return res;
19973 }
19974 }
19975 break;
19976 }
19977 default:;
19978 }
19979 switch (TREE_CODE (op1))
19980 {
19981 case CALL_EXPR:
19982 switch (get_call_combined_fn (op1))
19983 {
19984 case CFN_BUILT_IN_POW:
19985 {
19986 tree o50 = CALL_EXPR_ARG (op1, 0);
19987 tree o51 = CALL_EXPR_ARG (op1, 1);
19988 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
19989 {
19990 {
19991/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
19992 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
19993 tree res = generic_simplify_83 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
19994 if (res) return res;
19995 }
19996 }
19997 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
19998 {
19999 {
20000/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20001 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20002 tree res = generic_simplify_170 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
20003 if (res) return res;
20004 }
20005 }
20006 break;
20007 }
20008 default:;
20009 }
20010 break;
20011 default:;
20012 }
20013 break;
20014 }
20015 case CFN_BUILT_IN_POWL:
20016 {
20017 tree o20 = CALL_EXPR_ARG (op0, 0);
20018 tree o21 = CALL_EXPR_ARG (op0, 1);
20019 switch (TREE_CODE (o21))
20020 {
20021 case REAL_CST:
20022 {
20023 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20024 {
20025 {
20026/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20027 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
20028 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
20029 if (res) return res;
20030 }
20031 }
20032 break;
20033 }
20034 default:;
20035 }
20036 switch (TREE_CODE (op1))
20037 {
20038 case CALL_EXPR:
20039 switch (get_call_combined_fn (op1))
20040 {
20041 case CFN_BUILT_IN_POWL:
20042 {
20043 tree o50 = CALL_EXPR_ARG (op1, 0);
20044 tree o51 = CALL_EXPR_ARG (op1, 1);
20045 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
20046 {
20047 {
20048/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20049 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
20050 tree res = generic_simplify_83 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
20051 if (res) return res;
20052 }
20053 }
20054 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
20055 {
20056 {
20057/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20058 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20059 tree res = generic_simplify_170 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
20060 if (res) return res;
20061 }
20062 }
20063 break;
20064 }
20065 default:;
20066 }
20067 break;
20068 default:;
20069 }
20070 break;
20071 }
20072 case CFN_POW:
20073 {
20074 tree o20 = CALL_EXPR_ARG (op0, 0);
20075 tree o21 = CALL_EXPR_ARG (op0, 1);
20076 switch (TREE_CODE (o21))
20077 {
20078 case REAL_CST:
20079 {
20080 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20081 {
20082 {
20083/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20084 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
20085 tree res = generic_simplify_102 (loc, type, op0, op1, captures, CFN_POW);
20086 if (res) return res;
20087 }
20088 }
20089 break;
20090 }
20091 default:;
20092 }
20093 switch (TREE_CODE (op1))
20094 {
20095 case CALL_EXPR:
20096 switch (get_call_combined_fn (op1))
20097 {
20098 case CFN_POW:
20099 {
20100 tree o50 = CALL_EXPR_ARG (op1, 0);
20101 tree o51 = CALL_EXPR_ARG (op1, 1);
20102 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
20103 {
20104 {
20105/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20106 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
20107 tree res = generic_simplify_83 (loc, type, op0, op1, captures, CFN_POW);
20108 if (res) return res;
20109 }
20110 }
20111 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
20112 {
20113 {
20114/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20115 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20116 tree res = generic_simplify_170 (loc, type, op0, op1, captures, CFN_POW);
20117 if (res) return res;
20118 }
20119 }
20120 break;
20121 }
20122 default:;
20123 }
20124 break;
20125 default:;
20126 }
20127 break;
20128 }
20129 case CFN_BUILT_IN_POWIF:
20130 {
20131 tree o20 = CALL_EXPR_ARG (op0, 0);
20132 tree o21 = CALL_EXPR_ARG (op0, 1);
20133 switch (TREE_CODE (op1))
20134 {
20135 case CALL_EXPR:
20136 switch (get_call_combined_fn (op1))
20137 {
20138 case CFN_BUILT_IN_POWIF:
20139 {
20140 tree o50 = CALL_EXPR_ARG (op1, 0);
20141 tree o51 = CALL_EXPR_ARG (op1, 1);
20142 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
20143 {
20144 {
20145/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20146 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20147/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20148 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
20149 {
20150 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3350, %s:%d\n", __FILE__, __LINE__);
20151 tree res_op0;
20152 {
20153 tree ops1[2], res;
20154 ops1[0] = captures[1];
20155 ops1[1] = captures[4];
20156 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
20157 res_op0 = res;
20158 }
20159 tree res_op1;
20160 res_op1 = captures[2];
20161 tree res;
20162 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
20163 if (!res)
20164 return NULL_TREE;
20165 return res;
20166 }
20167 }
20168 }
20169 break;
20170 }
20171 default:;
20172 }
20173 break;
20174 default:;
20175 }
20176 break;
20177 }
20178 case CFN_BUILT_IN_POWI:
20179 {
20180 tree o20 = CALL_EXPR_ARG (op0, 0);
20181 tree o21 = CALL_EXPR_ARG (op0, 1);
20182 switch (TREE_CODE (op1))
20183 {
20184 case CALL_EXPR:
20185 switch (get_call_combined_fn (op1))
20186 {
20187 case CFN_BUILT_IN_POWI:
20188 {
20189 tree o50 = CALL_EXPR_ARG (op1, 0);
20190 tree o51 = CALL_EXPR_ARG (op1, 1);
20191 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
20192 {
20193 {
20194/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20195 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20196/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20197 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
20198 {
20199 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3350, %s:%d\n", __FILE__, __LINE__);
20200 tree res_op0;
20201 {
20202 tree ops1[2], res;
20203 ops1[0] = captures[1];
20204 ops1[1] = captures[4];
20205 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
20206 res_op0 = res;
20207 }
20208 tree res_op1;
20209 res_op1 = captures[2];
20210 tree res;
20211 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
20212 if (!res)
20213 return NULL_TREE;
20214 return res;
20215 }
20216 }
20217 }
20218 break;
20219 }
20220 default:;
20221 }
20222 break;
20223 default:;
20224 }
20225 break;
20226 }
20227 case CFN_BUILT_IN_POWIL:
20228 {
20229 tree o20 = CALL_EXPR_ARG (op0, 0);
20230 tree o21 = CALL_EXPR_ARG (op0, 1);
20231 switch (TREE_CODE (op1))
20232 {
20233 case CALL_EXPR:
20234 switch (get_call_combined_fn (op1))
20235 {
20236 case CFN_BUILT_IN_POWIL:
20237 {
20238 tree o50 = CALL_EXPR_ARG (op1, 0);
20239 tree o51 = CALL_EXPR_ARG (op1, 1);
20240 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
20241 {
20242 {
20243/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20244 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
20245/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20246 if (flag_unsafe_math_optimizations && canonicalize_math_p ())
20247 {
20248 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3350, %s:%d\n", __FILE__, __LINE__);
20249 tree res_op0;
20250 {
20251 tree ops1[2], res;
20252 ops1[0] = captures[1];
20253 ops1[1] = captures[4];
20254 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
20255 res_op0 = res;
20256 }
20257 tree res_op1;
20258 res_op1 = captures[2];
20259 tree res;
20260 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
20261 if (!res)
20262 return NULL_TREE;
20263 return res;
20264 }
20265 }
20266 }
20267 break;
20268 }
20269 default:;
20270 }
20271 break;
20272 default:;
20273 }
20274 break;
20275 }
20276 default:;
20277 }
20278 break;
20279 default:;
20280 }
20281 return NULL_TREE;
20282}
20283
20284static tree
20285generic_simplify_TRUNC_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
20286{
20287 if (integer_onep (op1))
20288 {
20289 {
20290/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20291 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20292 tree res = generic_simplify_187 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20293 if (res) return res;
20294 }
20295 }
20296 if (integer_zerop (op0))
20297 {
20298 {
20299/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20300 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20301 tree res = generic_simplify_144 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20302 if (res) return res;
20303 }
20304 }
20305 if (integer_minus_onep (op1))
20306 {
20307 {
20308/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20309 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20310 tree res = generic_simplify_204 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20311 if (res) return res;
20312 }
20313 }
20314 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
20315 {
20316 {
20317/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20318 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20319 tree res = generic_simplify_88 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20320 if (res) return res;
20321 }
20322 }
20323 switch (TREE_CODE (op1))
20324 {
20325 case ABS_EXPR:
20326 {
20327 tree o30 = TREE_OPERAND (op1, 0);
20328 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20329 {
20330 {
20331/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20332 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20333 tree res = generic_simplify_166 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20334 if (res) return res;
20335 }
20336 }
20337 break;
20338 }
20339 default:;
20340 }
20341 switch (TREE_CODE (op0))
20342 {
20343 case ABS_EXPR:
20344 {
20345 tree o20 = TREE_OPERAND (op0, 0);
20346 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20347 {
20348 {
20349/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20350 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20351 tree res = generic_simplify_166 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20352 if (res) return res;
20353 }
20354 }
20355 break;
20356 }
20357 default:;
20358 }
20359 switch (TREE_CODE (op1))
20360 {
20361 case NEGATE_EXPR:
20362 {
20363 tree o30 = TREE_OPERAND (op1, 0);
20364 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20365 {
20366 {
20367/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20368 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20369 tree res = generic_simplify_23 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20370 if (res) return res;
20371 }
20372 }
20373 break;
20374 }
20375 default:;
20376 }
20377 switch (TREE_CODE (op0))
20378 {
20379 case NEGATE_EXPR:
20380 {
20381 tree o20 = TREE_OPERAND (op0, 0);
20382 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20383 {
20384 {
20385/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20386 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20387 tree res = generic_simplify_23 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20388 if (res) return res;
20389 }
20390 }
20391 break;
20392 }
20393 case TRUNC_DIV_EXPR:
20394 {
20395 tree o20 = TREE_OPERAND (op0, 0);
20396 tree o21 = TREE_OPERAND (op0, 1);
20397 switch (TREE_CODE (o21))
20398 {
20399 case INTEGER_CST:
20400 {
20401 switch (TREE_CODE (op1))
20402 {
20403 case INTEGER_CST:
20404 {
20405 {
20406/* #line 199 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20407 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
20408 tree res = generic_simplify_40 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20409 if (res) return res;
20410 }
20411 break;
20412 }
20413 default:;
20414 }
20415 break;
20416 }
20417 default:;
20418 }
20419 break;
20420 }
20421 CASE_CONVERT:
20422 {
20423 tree o20 = TREE_OPERAND (op0, 0);
20424 switch (TREE_CODE (o20))
20425 {
20426 case BIT_AND_EXPR:
20427 {
20428 tree o30 = TREE_OPERAND (o20, 0);
20429 tree o31 = TREE_OPERAND (o20, 1);
20430 switch (TREE_CODE (o31))
20431 {
20432 case INTEGER_CST:
20433 {
20434 switch (TREE_CODE (op1))
20435 {
20436 case INTEGER_CST:
20437 {
20438 {
20439/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20440 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
20441 tree res = generic_simplify_14 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20442 if (res) return res;
20443 }
20444 break;
20445 }
20446 default:;
20447 }
20448 break;
20449 }
20450 default:;
20451 }
20452 break;
20453 }
20454 default:;
20455 }
20456 break;
20457 }
20458 case BIT_AND_EXPR:
20459 {
20460 tree o20 = TREE_OPERAND (op0, 0);
20461 tree o21 = TREE_OPERAND (op0, 1);
20462 switch (TREE_CODE (o21))
20463 {
20464 case INTEGER_CST:
20465 {
20466 switch (TREE_CODE (op1))
20467 {
20468 case INTEGER_CST:
20469 {
20470 {
20471/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20472 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
20473 tree res = generic_simplify_14 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20474 if (res) return res;
20475 }
20476 break;
20477 }
20478 default:;
20479 }
20480 break;
20481 }
20482 default:;
20483 }
20484 break;
20485 }
20486 case MULT_EXPR:
20487 {
20488 tree o20 = TREE_OPERAND (op0, 0);
20489 tree o21 = TREE_OPERAND (op0, 1);
20490 if (integer_pow2p (o21))
20491 {
20492 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
20493 {
20494 {
20495/* #line 381 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20496 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
20497/* #line 381 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20498 if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
20499 {
20500 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
20501 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:382, %s:%d\n", __FILE__, __LINE__);
20502 tree res_op0;
20503 res_op0 = captures[0];
20504 tree res_op1;
20505 res_op1 = wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (captures[1]), false, TYPE_PRECISION (type)));
20506 tree res;
20507 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20508 return res;
20509 }
20510 }
20511 }
20512 }
20513 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
20514 {
20515 {
20516/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20517 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
20518 tree res = generic_simplify_134 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
20519 if (res) return res;
20520 }
20521 }
20522 break;
20523 }
20524 default:;
20525 }
20526 return NULL_TREE;
20527}
20528
20529static tree
20530generic_simplify_CEIL_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
20531{
20532 if (integer_onep (op1))
20533 {
20534 {
20535/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20536 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20537 tree res = generic_simplify_187 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20538 if (res) return res;
20539 }
20540 }
20541 if (integer_zerop (op0))
20542 {
20543 {
20544/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20545 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20546 tree res = generic_simplify_144 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20547 if (res) return res;
20548 }
20549 }
20550 if (integer_minus_onep (op1))
20551 {
20552 {
20553/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20554 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20555 tree res = generic_simplify_204 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20556 if (res) return res;
20557 }
20558 }
20559 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
20560 {
20561 {
20562/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20563 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20564 tree res = generic_simplify_88 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20565 if (res) return res;
20566 }
20567 }
20568 switch (TREE_CODE (op1))
20569 {
20570 case ABS_EXPR:
20571 {
20572 tree o30 = TREE_OPERAND (op1, 0);
20573 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20574 {
20575 {
20576/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20577 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20578 tree res = generic_simplify_166 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20579 if (res) return res;
20580 }
20581 }
20582 break;
20583 }
20584 default:;
20585 }
20586 switch (TREE_CODE (op0))
20587 {
20588 case ABS_EXPR:
20589 {
20590 tree o20 = TREE_OPERAND (op0, 0);
20591 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20592 {
20593 {
20594/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20595 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20596 tree res = generic_simplify_166 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20597 if (res) return res;
20598 }
20599 }
20600 break;
20601 }
20602 default:;
20603 }
20604 switch (TREE_CODE (op1))
20605 {
20606 case NEGATE_EXPR:
20607 {
20608 tree o30 = TREE_OPERAND (op1, 0);
20609 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20610 {
20611 {
20612/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20613 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20614 tree res = generic_simplify_23 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20615 if (res) return res;
20616 }
20617 }
20618 break;
20619 }
20620 default:;
20621 }
20622 switch (TREE_CODE (op0))
20623 {
20624 case NEGATE_EXPR:
20625 {
20626 tree o20 = TREE_OPERAND (op0, 0);
20627 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20628 {
20629 {
20630/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20631 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20632 tree res = generic_simplify_23 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20633 if (res) return res;
20634 }
20635 }
20636 break;
20637 }
20638 CASE_CONVERT:
20639 {
20640 tree o20 = TREE_OPERAND (op0, 0);
20641 switch (TREE_CODE (o20))
20642 {
20643 case BIT_AND_EXPR:
20644 {
20645 tree o30 = TREE_OPERAND (o20, 0);
20646 tree o31 = TREE_OPERAND (o20, 1);
20647 switch (TREE_CODE (o31))
20648 {
20649 case INTEGER_CST:
20650 {
20651 switch (TREE_CODE (op1))
20652 {
20653 case INTEGER_CST:
20654 {
20655 {
20656/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20657 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
20658 tree res = generic_simplify_14 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20659 if (res) return res;
20660 }
20661 break;
20662 }
20663 default:;
20664 }
20665 break;
20666 }
20667 default:;
20668 }
20669 break;
20670 }
20671 default:;
20672 }
20673 break;
20674 }
20675 case BIT_AND_EXPR:
20676 {
20677 tree o20 = TREE_OPERAND (op0, 0);
20678 tree o21 = TREE_OPERAND (op0, 1);
20679 switch (TREE_CODE (o21))
20680 {
20681 case INTEGER_CST:
20682 {
20683 switch (TREE_CODE (op1))
20684 {
20685 case INTEGER_CST:
20686 {
20687 {
20688/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20689 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
20690 tree res = generic_simplify_14 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20691 if (res) return res;
20692 }
20693 break;
20694 }
20695 default:;
20696 }
20697 break;
20698 }
20699 default:;
20700 }
20701 break;
20702 }
20703 case MULT_EXPR:
20704 {
20705 tree o20 = TREE_OPERAND (op0, 0);
20706 tree o21 = TREE_OPERAND (op0, 1);
20707 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
20708 {
20709 {
20710/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20711 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
20712 tree res = generic_simplify_134 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
20713 if (res) return res;
20714 }
20715 }
20716 break;
20717 }
20718 default:;
20719 }
20720 return NULL_TREE;
20721}
20722
20723static tree
20724generic_simplify_FLOOR_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
20725{
20726 if (integer_onep (op1))
20727 {
20728 {
20729/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20730 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20731 tree res = generic_simplify_187 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20732 if (res) return res;
20733 }
20734 }
20735 if (integer_zerop (op0))
20736 {
20737 {
20738/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20739 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20740 tree res = generic_simplify_144 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20741 if (res) return res;
20742 }
20743 }
20744 if (integer_minus_onep (op1))
20745 {
20746 {
20747/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20748 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20749 tree res = generic_simplify_204 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20750 if (res) return res;
20751 }
20752 }
20753 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
20754 {
20755 {
20756/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20757 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20758 tree res = generic_simplify_88 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20759 if (res) return res;
20760 }
20761 }
20762 switch (TREE_CODE (op1))
20763 {
20764 case ABS_EXPR:
20765 {
20766 tree o30 = TREE_OPERAND (op1, 0);
20767 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20768 {
20769 {
20770/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20771 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20772 tree res = generic_simplify_166 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20773 if (res) return res;
20774 }
20775 }
20776 break;
20777 }
20778 default:;
20779 }
20780 switch (TREE_CODE (op0))
20781 {
20782 case ABS_EXPR:
20783 {
20784 tree o20 = TREE_OPERAND (op0, 0);
20785 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20786 {
20787 {
20788/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20789 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20790 tree res = generic_simplify_166 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20791 if (res) return res;
20792 }
20793 }
20794 break;
20795 }
20796 default:;
20797 }
20798 switch (TREE_CODE (op1))
20799 {
20800 case NEGATE_EXPR:
20801 {
20802 tree o30 = TREE_OPERAND (op1, 0);
20803 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20804 {
20805 {
20806/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20807 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20808 tree res = generic_simplify_23 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20809 if (res) return res;
20810 }
20811 }
20812 break;
20813 }
20814 default:;
20815 }
20816 switch (TREE_CODE (op0))
20817 {
20818 case NEGATE_EXPR:
20819 {
20820 tree o20 = TREE_OPERAND (op0, 0);
20821 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
20822 {
20823 {
20824/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20825 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
20826 tree res = generic_simplify_23 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20827 if (res) return res;
20828 }
20829 }
20830 break;
20831 }
20832 default:;
20833 }
20834 {
20835/* #line 190 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20836 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20837/* #line 190 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20838 if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_UNSIGNED (type))
20839 {
20840 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:192, %s:%d\n", __FILE__, __LINE__);
20841 tree res_op0;
20842 res_op0 = captures[0];
20843 tree res_op1;
20844 res_op1 = captures[1];
20845 tree res;
20846 res = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, res_op0, res_op1);
20847 return res;
20848 }
20849 }
20850 switch (TREE_CODE (op0))
20851 {
20852 CASE_CONVERT:
20853 {
20854 tree o20 = TREE_OPERAND (op0, 0);
20855 switch (TREE_CODE (o20))
20856 {
20857 case BIT_AND_EXPR:
20858 {
20859 tree o30 = TREE_OPERAND (o20, 0);
20860 tree o31 = TREE_OPERAND (o20, 1);
20861 switch (TREE_CODE (o31))
20862 {
20863 case INTEGER_CST:
20864 {
20865 switch (TREE_CODE (op1))
20866 {
20867 case INTEGER_CST:
20868 {
20869 {
20870/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20871 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
20872 tree res = generic_simplify_14 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20873 if (res) return res;
20874 }
20875 break;
20876 }
20877 default:;
20878 }
20879 break;
20880 }
20881 default:;
20882 }
20883 break;
20884 }
20885 default:;
20886 }
20887 break;
20888 }
20889 case BIT_AND_EXPR:
20890 {
20891 tree o20 = TREE_OPERAND (op0, 0);
20892 tree o21 = TREE_OPERAND (op0, 1);
20893 switch (TREE_CODE (o21))
20894 {
20895 case INTEGER_CST:
20896 {
20897 switch (TREE_CODE (op1))
20898 {
20899 case INTEGER_CST:
20900 {
20901 {
20902/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20903 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
20904 tree res = generic_simplify_14 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20905 if (res) return res;
20906 }
20907 break;
20908 }
20909 default:;
20910 }
20911 break;
20912 }
20913 default:;
20914 }
20915 break;
20916 }
20917 case MULT_EXPR:
20918 {
20919 tree o20 = TREE_OPERAND (op0, 0);
20920 tree o21 = TREE_OPERAND (op0, 1);
20921 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
20922 {
20923 {
20924/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20925 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
20926 tree res = generic_simplify_134 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
20927 if (res) return res;
20928 }
20929 }
20930 break;
20931 }
20932 default:;
20933 }
20934 return NULL_TREE;
20935}
20936
20937static tree
20938generic_simplify_ROUND_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
20939{
20940 if (integer_onep (op1))
20941 {
20942 {
20943/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20944 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20945 tree res = generic_simplify_187 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
20946 if (res) return res;
20947 }
20948 }
20949 if (integer_zerop (op0))
20950 {
20951 {
20952/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20953 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20954 tree res = generic_simplify_144 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
20955 if (res) return res;
20956 }
20957 }
20958 if (integer_minus_onep (op1))
20959 {
20960 {
20961/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20962 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
20963 tree res = generic_simplify_204 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
20964 if (res) return res;
20965 }
20966 }
20967 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
20968 {
20969 {
20970/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20971 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20972 tree res = generic_simplify_88 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
20973 if (res) return res;
20974 }
20975 }
20976 switch (TREE_CODE (op1))
20977 {
20978 case ABS_EXPR:
20979 {
20980 tree o30 = TREE_OPERAND (op1, 0);
20981 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
20982 {
20983 {
20984/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
20985 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
20986 tree res = generic_simplify_166 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
20987 if (res) return res;
20988 }
20989 }
20990 break;
20991 }
20992 default:;
20993 }
20994 switch (TREE_CODE (op0))
20995 {
20996 case ABS_EXPR:
20997 {
20998 tree o20 = TREE_OPERAND (op0, 0);
20999 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21000 {
21001 {
21002/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21003 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21004 tree res = generic_simplify_166 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21005 if (res) return res;
21006 }
21007 }
21008 break;
21009 }
21010 default:;
21011 }
21012 switch (TREE_CODE (op1))
21013 {
21014 case NEGATE_EXPR:
21015 {
21016 tree o30 = TREE_OPERAND (op1, 0);
21017 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
21018 {
21019 {
21020/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21021 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21022 tree res = generic_simplify_23 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21023 if (res) return res;
21024 }
21025 }
21026 break;
21027 }
21028 default:;
21029 }
21030 switch (TREE_CODE (op0))
21031 {
21032 case NEGATE_EXPR:
21033 {
21034 tree o20 = TREE_OPERAND (op0, 0);
21035 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21036 {
21037 {
21038/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21039 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21040 tree res = generic_simplify_23 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21041 if (res) return res;
21042 }
21043 }
21044 break;
21045 }
21046 CASE_CONVERT:
21047 {
21048 tree o20 = TREE_OPERAND (op0, 0);
21049 switch (TREE_CODE (o20))
21050 {
21051 case BIT_AND_EXPR:
21052 {
21053 tree o30 = TREE_OPERAND (o20, 0);
21054 tree o31 = TREE_OPERAND (o20, 1);
21055 switch (TREE_CODE (o31))
21056 {
21057 case INTEGER_CST:
21058 {
21059 switch (TREE_CODE (op1))
21060 {
21061 case INTEGER_CST:
21062 {
21063 {
21064/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21065 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
21066 tree res = generic_simplify_14 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21067 if (res) return res;
21068 }
21069 break;
21070 }
21071 default:;
21072 }
21073 break;
21074 }
21075 default:;
21076 }
21077 break;
21078 }
21079 default:;
21080 }
21081 break;
21082 }
21083 case BIT_AND_EXPR:
21084 {
21085 tree o20 = TREE_OPERAND (op0, 0);
21086 tree o21 = TREE_OPERAND (op0, 1);
21087 switch (TREE_CODE (o21))
21088 {
21089 case INTEGER_CST:
21090 {
21091 switch (TREE_CODE (op1))
21092 {
21093 case INTEGER_CST:
21094 {
21095 {
21096/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21097 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
21098 tree res = generic_simplify_14 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21099 if (res) return res;
21100 }
21101 break;
21102 }
21103 default:;
21104 }
21105 break;
21106 }
21107 default:;
21108 }
21109 break;
21110 }
21111 case MULT_EXPR:
21112 {
21113 tree o20 = TREE_OPERAND (op0, 0);
21114 tree o21 = TREE_OPERAND (op0, 1);
21115 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
21116 {
21117 {
21118/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21119 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
21120 tree res = generic_simplify_134 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
21121 if (res) return res;
21122 }
21123 }
21124 break;
21125 }
21126 default:;
21127 }
21128 return NULL_TREE;
21129}
21130
21131static tree
21132generic_simplify_EXACT_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
21133{
21134 if (integer_onep (op1))
21135 {
21136 {
21137/* #line 148 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21138 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21139 tree res = generic_simplify_187 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21140 if (res) return res;
21141 }
21142 }
21143 if (integer_zerop (op0))
21144 {
21145 {
21146/* #line 158 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21147 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
21148 tree res = generic_simplify_144 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21149 if (res) return res;
21150 }
21151 }
21152 if (integer_minus_onep (op1))
21153 {
21154 {
21155/* #line 163 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21156 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
21157 tree res = generic_simplify_204 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21158 if (res) return res;
21159 }
21160 }
21161 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
21162 {
21163 {
21164/* #line 170 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21165 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21166 tree res = generic_simplify_88 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21167 if (res) return res;
21168 }
21169 }
21170 switch (TREE_CODE (op1))
21171 {
21172 case ABS_EXPR:
21173 {
21174 tree o30 = TREE_OPERAND (op1, 0);
21175 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
21176 {
21177 {
21178/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21179 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21180 tree res = generic_simplify_166 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21181 if (res) return res;
21182 }
21183 }
21184 break;
21185 }
21186 default:;
21187 }
21188 switch (TREE_CODE (op0))
21189 {
21190 case ABS_EXPR:
21191 {
21192 tree o20 = TREE_OPERAND (op0, 0);
21193 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21194 {
21195 {
21196/* #line 175 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21197 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21198 tree res = generic_simplify_166 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21199 if (res) return res;
21200 }
21201 }
21202 break;
21203 }
21204 default:;
21205 }
21206 switch (TREE_CODE (op1))
21207 {
21208 case NEGATE_EXPR:
21209 {
21210 tree o30 = TREE_OPERAND (op1, 0);
21211 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
21212 {
21213 {
21214/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21215 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21216 tree res = generic_simplify_23 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21217 if (res) return res;
21218 }
21219 }
21220 break;
21221 }
21222 default:;
21223 }
21224 switch (TREE_CODE (op0))
21225 {
21226 case NEGATE_EXPR:
21227 {
21228 tree o20 = TREE_OPERAND (op0, 0);
21229 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21230 {
21231 {
21232/* #line 182 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21233 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21234 tree res = generic_simplify_23 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21235 if (res) return res;
21236 }
21237 }
21238 break;
21239 }
21240 case EXACT_DIV_EXPR:
21241 {
21242 tree o20 = TREE_OPERAND (op0, 0);
21243 tree o21 = TREE_OPERAND (op0, 1);
21244 switch (TREE_CODE (o21))
21245 {
21246 case INTEGER_CST:
21247 {
21248 switch (TREE_CODE (op1))
21249 {
21250 case INTEGER_CST:
21251 {
21252 {
21253/* #line 199 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21254 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
21255 tree res = generic_simplify_40 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21256 if (res) return res;
21257 }
21258 break;
21259 }
21260 default:;
21261 }
21262 break;
21263 }
21264 default:;
21265 }
21266 break;
21267 }
21268 CASE_CONVERT:
21269 {
21270 tree o20 = TREE_OPERAND (op0, 0);
21271 switch (TREE_CODE (o20))
21272 {
21273 case BIT_AND_EXPR:
21274 {
21275 tree o30 = TREE_OPERAND (o20, 0);
21276 tree o31 = TREE_OPERAND (o20, 1);
21277 switch (TREE_CODE (o31))
21278 {
21279 case INTEGER_CST:
21280 {
21281 switch (TREE_CODE (op1))
21282 {
21283 case INTEGER_CST:
21284 {
21285 {
21286/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21287 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
21288 tree res = generic_simplify_14 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21289 if (res) return res;
21290 }
21291 break;
21292 }
21293 default:;
21294 }
21295 break;
21296 }
21297 default:;
21298 }
21299 break;
21300 }
21301 default:;
21302 }
21303 break;
21304 }
21305 case BIT_AND_EXPR:
21306 {
21307 tree o20 = TREE_OPERAND (op0, 0);
21308 tree o21 = TREE_OPERAND (op0, 1);
21309 switch (TREE_CODE (o21))
21310 {
21311 case INTEGER_CST:
21312 {
21313 switch (TREE_CODE (op1))
21314 {
21315 case INTEGER_CST:
21316 {
21317 {
21318/* #line 268 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21319 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
21320 tree res = generic_simplify_14 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21321 if (res) return res;
21322 }
21323 break;
21324 }
21325 default:;
21326 }
21327 break;
21328 }
21329 default:;
21330 }
21331 break;
21332 }
21333 case MULT_EXPR:
21334 {
21335 tree o20 = TREE_OPERAND (op0, 0);
21336 tree o21 = TREE_OPERAND (op0, 1);
21337 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
21338 {
21339 {
21340/* #line 396 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21341 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
21342 tree res = generic_simplify_134 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
21343 if (res) return res;
21344 }
21345 }
21346 break;
21347 }
21348 default:;
21349 }
21350 return NULL_TREE;
21351}
21352
21353static tree
21354generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
21355{
21356 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
21357 {
21358 {
21359/* #line 213 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21360 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21361/* #line 213 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21362 if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
21363 {
21364 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:216, %s:%d\n", __FILE__, __LINE__);
21365 tree res;
21366 res = build_one_cst (type);
21367 if (TREE_SIDE_EFFECTS (captures[0]))
21368 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
21369 return res;
21370 }
21371 }
21372 }
21373 switch (TREE_CODE (op1))
21374 {
21375 case NEGATE_EXPR:
21376 {
21377 tree o30 = TREE_OPERAND (op1, 0);
21378 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
21379 {
21380 {
21381/* #line 222 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21382 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21383 tree res = generic_simplify_150 (loc, type, op0, op1, captures);
21384 if (res) return res;
21385 }
21386 }
21387 break;
21388 }
21389 default:;
21390 }
21391 switch (TREE_CODE (op0))
21392 {
21393 case NEGATE_EXPR:
21394 {
21395 tree o20 = TREE_OPERAND (op0, 0);
21396 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21397 {
21398 {
21399/* #line 222 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21400 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21401 tree res = generic_simplify_150 (loc, type, op0, op1, captures);
21402 if (res) return res;
21403 }
21404 }
21405 break;
21406 }
21407 CASE_CONVERT:
21408 {
21409 tree o20 = TREE_OPERAND (op0, 0);
21410 switch (TREE_CODE (op1))
21411 {
21412 CASE_CONVERT:
21413 {
21414 tree o40 = TREE_OPERAND (op1, 0);
21415 switch (TREE_CODE (o40))
21416 {
21417 case ABS_EXPR:
21418 {
21419 tree o50 = TREE_OPERAND (o40, 0);
21420 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
21421 {
21422 {
21423/* #line 230 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21424 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21425 tree res = generic_simplify_25 (loc, type, op0, op1, captures);
21426 if (res) return res;
21427 }
21428 }
21429 break;
21430 }
21431 default:;
21432 }
21433 break;
21434 }
21435 default:;
21436 }
21437 switch (TREE_CODE (o20))
21438 {
21439 case ABS_EXPR:
21440 {
21441 tree o30 = TREE_OPERAND (o20, 0);
21442 switch (TREE_CODE (op1))
21443 {
21444 CASE_CONVERT:
21445 {
21446 tree o50 = TREE_OPERAND (op1, 0);
21447 if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
21448 {
21449 {
21450/* #line 230 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21451 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
21452 tree res = generic_simplify_25 (loc, type, op0, op1, captures);
21453 if (res) return res;
21454 }
21455 }
21456 break;
21457 }
21458 default:;
21459 }
21460 break;
21461 }
21462 default:;
21463 }
21464 break;
21465 }
21466 default:;
21467 }
21468 switch (TREE_CODE (op1))
21469 {
21470 case ABS_EXPR:
21471 {
21472 tree o30 = TREE_OPERAND (op1, 0);
21473 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
21474 {
21475 {
21476/* #line 230 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21477 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21478 tree res = generic_simplify_25 (loc, type, op0, op1, captures);
21479 if (res) return res;
21480 }
21481 }
21482 break;
21483 }
21484 default:;
21485 }
21486 switch (TREE_CODE (op0))
21487 {
21488 case ABS_EXPR:
21489 {
21490 tree o20 = TREE_OPERAND (op0, 0);
21491 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
21492 {
21493 {
21494/* #line 230 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21495 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
21496 tree res = generic_simplify_25 (loc, type, op0, op1, captures);
21497 if (res) return res;
21498 }
21499 }
21500 break;
21501 }
21502 default:;
21503 }
21504 if (real_onep (op1))
21505 {
21506 {
21507/* #line 244 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21508 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21509/* #line 244 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21510 if (!HONOR_SNANS (type))
21511 {
21512 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
21513 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:245, %s:%d\n", __FILE__, __LINE__);
21514 tree res_op0;
21515 res_op0 = captures[0];
21516 tree res;
21517 res = non_lvalue_loc (loc, res_op0);
21518 return res;
21519 }
21520 }
21521 }
21522 if (real_minus_onep (op1))
21523 {
21524 {
21525/* #line 250 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21526 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
21527/* #line 250 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21528 if (!HONOR_SNANS (type))
21529 {
21530 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
21531 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:251, %s:%d\n", __FILE__, __LINE__);
21532 tree res_op0;
21533 res_op0 = captures[0];
21534 tree res;
21535 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
21536 return res;
21537 }
21538 }
21539 }
21540 switch (TREE_CODE (op0))
21541 {
21542 case RDIV_EXPR:
21543 {
21544 tree o20 = TREE_OPERAND (op0, 0);
21545 tree o21 = TREE_OPERAND (op0, 1);
21546 {
21547/* #line 253 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21548 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
21549/* #line 253 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21550 if (flag_reciprocal_math)
21551 {
21552 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:257, %s:%d\n", __FILE__, __LINE__);
21553 tree res_op0;
21554 res_op0 = captures[1];
21555 tree res_op1;
21556 {
21557 tree ops1[2], res;
21558 ops1[0] = captures[2];
21559 ops1[1] = captures[3];
21560 res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
21561 res_op1 = res;
21562 }
21563 tree res;
21564 res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
21565 return res;
21566 }
21567 }
21568 break;
21569 }
21570 default:;
21571 }
21572 switch (TREE_CODE (op1))
21573 {
21574 case RDIV_EXPR:
21575 {
21576 tree o30 = TREE_OPERAND (op1, 0);
21577 tree o31 = TREE_OPERAND (op1, 1);
21578 {
21579/* #line 253 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21580 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
21581/* #line 253 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21582 if (flag_reciprocal_math)
21583 {
21584 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:262, %s:%d\n", __FILE__, __LINE__);
21585 tree res_op0;
21586 {
21587 tree ops1[2], res;
21588 ops1[0] = captures[0];
21589 ops1[1] = captures[2];
21590 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
21591 res_op0 = res;
21592 }
21593 tree res_op1;
21594 res_op1 = captures[3];
21595 tree res;
21596 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21597 return res;
21598 }
21599 }
21600 break;
21601 }
21602 case REAL_CST:
21603 {
21604 {
21605/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21606 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
21607/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21608 if (optimize)
21609 {
21610/* #line 284 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21611 if (flag_reciprocal_math && !real_zerop (captures[1]))
21612 {
21613 {
21614/* #line 286 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21615 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
21616/* #line 288 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21617 if (tem)
21618 {
21619 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21620 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__);
21621 tree res_op0;
21622 res_op0 = captures[0];
21623 tree res_op1;
21624 res_op1 = tem;
21625 tree res;
21626 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21627 return res;
21628 }
21629 }
21630 }
21631 else
21632 {
21633/* #line 290 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21634 if (REAL_CST != COMPLEX_CST)
21635 {
21636 {
21637/* #line 291 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21638 tree inverse = exact_inverse (type, captures[1]);
21639/* #line 292 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21640 if (inverse)
21641 {
21642 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21643 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__);
21644 tree res_op0;
21645 res_op0 = captures[0];
21646 tree res_op1;
21647 res_op1 = inverse;
21648 tree res;
21649 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21650 return res;
21651 }
21652 }
21653 }
21654 }
21655 }
21656 }
21657 break;
21658 }
21659 case COMPLEX_CST:
21660 {
21661 {
21662/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21663 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
21664/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21665 if (optimize)
21666 {
21667/* #line 284 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21668 if (flag_reciprocal_math && !real_zerop (captures[1]))
21669 {
21670 {
21671/* #line 286 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21672 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
21673/* #line 288 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21674 if (tem)
21675 {
21676 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21677 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__);
21678 tree res_op0;
21679 res_op0 = captures[0];
21680 tree res_op1;
21681 res_op1 = tem;
21682 tree res;
21683 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21684 return res;
21685 }
21686 }
21687 }
21688 else
21689 {
21690/* #line 290 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21691 if (COMPLEX_CST != COMPLEX_CST)
21692 {
21693 {
21694/* #line 291 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21695 tree inverse = exact_inverse (type, captures[1]);
21696/* #line 292 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21697 if (inverse)
21698 {
21699 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21700 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__);
21701 tree res_op0;
21702 res_op0 = captures[0];
21703 tree res_op1;
21704 res_op1 = inverse;
21705 tree res;
21706 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21707 return res;
21708 }
21709 }
21710 }
21711 }
21712 }
21713 }
21714 break;
21715 }
21716 case VECTOR_CST:
21717 {
21718 {
21719/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21720 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
21721/* #line 283 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21722 if (optimize)
21723 {
21724/* #line 284 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21725 if (flag_reciprocal_math && !real_zerop (captures[1]))
21726 {
21727 {
21728/* #line 286 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21729 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
21730/* #line 288 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21731 if (tem)
21732 {
21733 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21734 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__);
21735 tree res_op0;
21736 res_op0 = captures[0];
21737 tree res_op1;
21738 res_op1 = tem;
21739 tree res;
21740 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21741 return res;
21742 }
21743 }
21744 }
21745 else
21746 {
21747/* #line 290 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21748 if (VECTOR_CST != COMPLEX_CST)
21749 {
21750 {
21751/* #line 291 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21752 tree inverse = exact_inverse (type, captures[1]);
21753/* #line 292 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21754 if (inverse)
21755 {
21756 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
21757 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__);
21758 tree res_op0;
21759 res_op0 = captures[0];
21760 tree res_op1;
21761 res_op1 = inverse;
21762 tree res;
21763 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21764 return res;
21765 }
21766 }
21767 }
21768 }
21769 }
21770 }
21771 break;
21772 }
21773 default:;
21774 }
21775 switch (TREE_CODE (op0))
21776 {
21777 case REAL_CST:
21778 {
21779 switch (TREE_CODE (op1))
21780 {
21781 case MULT_EXPR:
21782 {
21783 tree o30 = TREE_OPERAND (op1, 0);
21784 tree o31 = TREE_OPERAND (op1, 1);
21785 switch (TREE_CODE (o31))
21786 {
21787 case REAL_CST:
21788 {
21789 {
21790/* #line 525 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21791 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
21792/* #line 525 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21793 if (flag_reciprocal_math)
21794 {
21795 {
21796/* #line 526 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21797 tree tem = const_binop (RDIV_EXPR, type, captures[0], captures[2]);
21798/* #line 528 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21799 if (tem)
21800 {
21801 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
21802 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
21803 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:529, %s:%d\n", __FILE__, __LINE__);
21804 tree res_op0;
21805 res_op0 = tem;
21806 tree res_op1;
21807 res_op1 = captures[1];
21808 tree res;
21809 res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
21810 return res;
21811 }
21812 }
21813 }
21814 }
21815 break;
21816 }
21817 default:;
21818 }
21819 break;
21820 }
21821 default:;
21822 }
21823 break;
21824 }
21825 default:;
21826 }
21827 switch (TREE_CODE (op1))
21828 {
21829 case CALL_EXPR:
21830 switch (get_call_combined_fn (op1))
21831 {
21832 case CFN_BUILT_IN_SQRTF:
21833 {
21834 tree o30 = CALL_EXPR_ARG (op1, 0);
21835 switch (TREE_CODE (o30))
21836 {
21837 case RDIV_EXPR:
21838 {
21839 tree o40 = TREE_OPERAND (o30, 0);
21840 tree o41 = TREE_OPERAND (o30, 1);
21841 {
21842/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21843 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
21844/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21845 if (flag_unsafe_math_optimizations)
21846 {
21847 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
21848 tree res_op0;
21849 res_op0 = captures[0];
21850 tree res_op1;
21851 {
21852 tree ops1[1], res;
21853 {
21854 tree ops2[2], res;
21855 ops2[0] = captures[4];
21856 ops2[1] = captures[3];
21857 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
21858 ops1[0] = res;
21859 }
21860 {
21861 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (ops1[0]), 1, ops1[0]);
21862 if (!res)
21863 return NULL_TREE;
21864 }
21865 res_op1 = res;
21866 }
21867 tree res;
21868 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21869 return res;
21870 }
21871 }
21872 break;
21873 }
21874 default:;
21875 }
21876 break;
21877 }
21878 case CFN_BUILT_IN_SQRT:
21879 {
21880 tree o30 = CALL_EXPR_ARG (op1, 0);
21881 switch (TREE_CODE (o30))
21882 {
21883 case RDIV_EXPR:
21884 {
21885 tree o40 = TREE_OPERAND (o30, 0);
21886 tree o41 = TREE_OPERAND (o30, 1);
21887 {
21888/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21889 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
21890/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21891 if (flag_unsafe_math_optimizations)
21892 {
21893 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
21894 tree res_op0;
21895 res_op0 = captures[0];
21896 tree res_op1;
21897 {
21898 tree ops1[1], res;
21899 {
21900 tree ops2[2], res;
21901 ops2[0] = captures[4];
21902 ops2[1] = captures[3];
21903 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
21904 ops1[0] = res;
21905 }
21906 {
21907 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
21908 if (!res)
21909 return NULL_TREE;
21910 }
21911 res_op1 = res;
21912 }
21913 tree res;
21914 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21915 return res;
21916 }
21917 }
21918 break;
21919 }
21920 default:;
21921 }
21922 break;
21923 }
21924 case CFN_BUILT_IN_SQRTL:
21925 {
21926 tree o30 = CALL_EXPR_ARG (op1, 0);
21927 switch (TREE_CODE (o30))
21928 {
21929 case RDIV_EXPR:
21930 {
21931 tree o40 = TREE_OPERAND (o30, 0);
21932 tree o41 = TREE_OPERAND (o30, 1);
21933 {
21934/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21935 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
21936/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21937 if (flag_unsafe_math_optimizations)
21938 {
21939 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
21940 tree res_op0;
21941 res_op0 = captures[0];
21942 tree res_op1;
21943 {
21944 tree ops1[1], res;
21945 {
21946 tree ops2[2], res;
21947 ops2[0] = captures[4];
21948 ops2[1] = captures[3];
21949 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
21950 ops1[0] = res;
21951 }
21952 {
21953 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (ops1[0]), 1, ops1[0]);
21954 if (!res)
21955 return NULL_TREE;
21956 }
21957 res_op1 = res;
21958 }
21959 tree res;
21960 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
21961 return res;
21962 }
21963 }
21964 break;
21965 }
21966 default:;
21967 }
21968 break;
21969 }
21970 case CFN_SQRT:
21971 {
21972 tree o30 = CALL_EXPR_ARG (op1, 0);
21973 switch (TREE_CODE (o30))
21974 {
21975 case RDIV_EXPR:
21976 {
21977 tree o40 = TREE_OPERAND (o30, 0);
21978 tree o41 = TREE_OPERAND (o30, 1);
21979 {
21980/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21981 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
21982/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
21983 if (flag_unsafe_math_optimizations)
21984 {
21985 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
21986 tree res_op0;
21987 res_op0 = captures[0];
21988 tree res_op1;
21989 {
21990 tree ops1[1], res;
21991 {
21992 tree ops2[2], res;
21993 ops2[0] = captures[4];
21994 ops2[1] = captures[3];
21995 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
21996 ops1[0] = res;
21997 }
21998 {
21999 res = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
22000 if (!res)
22001 return NULL_TREE;
22002 }
22003 res_op1 = res;
22004 }
22005 tree res;
22006 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22007 return res;
22008 }
22009 }
22010 break;
22011 }
22012 default:;
22013 }
22014 break;
22015 }
22016 case CFN_BUILT_IN_CBRTF:
22017 {
22018 tree o30 = CALL_EXPR_ARG (op1, 0);
22019 switch (TREE_CODE (o30))
22020 {
22021 case RDIV_EXPR:
22022 {
22023 tree o40 = TREE_OPERAND (o30, 0);
22024 tree o41 = TREE_OPERAND (o30, 1);
22025 {
22026/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22027 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
22028/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22029 if (flag_unsafe_math_optimizations)
22030 {
22031 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
22032 tree res_op0;
22033 res_op0 = captures[0];
22034 tree res_op1;
22035 {
22036 tree ops1[1], res;
22037 {
22038 tree ops2[2], res;
22039 ops2[0] = captures[4];
22040 ops2[1] = captures[3];
22041 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
22042 ops1[0] = res;
22043 }
22044 {
22045 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (ops1[0]), 1, ops1[0]);
22046 if (!res)
22047 return NULL_TREE;
22048 }
22049 res_op1 = res;
22050 }
22051 tree res;
22052 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22053 return res;
22054 }
22055 }
22056 break;
22057 }
22058 default:;
22059 }
22060 break;
22061 }
22062 case CFN_BUILT_IN_CBRT:
22063 {
22064 tree o30 = CALL_EXPR_ARG (op1, 0);
22065 switch (TREE_CODE (o30))
22066 {
22067 case RDIV_EXPR:
22068 {
22069 tree o40 = TREE_OPERAND (o30, 0);
22070 tree o41 = TREE_OPERAND (o30, 1);
22071 {
22072/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22073 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
22074/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22075 if (flag_unsafe_math_optimizations)
22076 {
22077 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
22078 tree res_op0;
22079 res_op0 = captures[0];
22080 tree res_op1;
22081 {
22082 tree ops1[1], res;
22083 {
22084 tree ops2[2], res;
22085 ops2[0] = captures[4];
22086 ops2[1] = captures[3];
22087 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
22088 ops1[0] = res;
22089 }
22090 {
22091 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
22092 if (!res)
22093 return NULL_TREE;
22094 }
22095 res_op1 = res;
22096 }
22097 tree res;
22098 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22099 return res;
22100 }
22101 }
22102 break;
22103 }
22104 default:;
22105 }
22106 break;
22107 }
22108 case CFN_BUILT_IN_CBRTL:
22109 {
22110 tree o30 = CALL_EXPR_ARG (op1, 0);
22111 switch (TREE_CODE (o30))
22112 {
22113 case RDIV_EXPR:
22114 {
22115 tree o40 = TREE_OPERAND (o30, 0);
22116 tree o41 = TREE_OPERAND (o30, 1);
22117 {
22118/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22119 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
22120/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22121 if (flag_unsafe_math_optimizations)
22122 {
22123 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3132, %s:%d\n", __FILE__, __LINE__);
22124 tree res_op0;
22125 res_op0 = captures[0];
22126 tree res_op1;
22127 {
22128 tree ops1[1], res;
22129 {
22130 tree ops2[2], res;
22131 ops2[0] = captures[4];
22132 ops2[1] = captures[3];
22133 res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
22134 ops1[0] = res;
22135 }
22136 {
22137 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (ops1[0]), 1, ops1[0]);
22138 if (!res)
22139 return NULL_TREE;
22140 }
22141 res_op1 = res;
22142 }
22143 tree res;
22144 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22145 return res;
22146 }
22147 }
22148 break;
22149 }
22150 default:;
22151 }
22152 break;
22153 }
22154 case CFN_BUILT_IN_EXPF:
22155 {
22156 tree o30 = CALL_EXPR_ARG (op1, 0);
22157 {
22158/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22159 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22160/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22161 if (flag_unsafe_math_optimizations)
22162 {
22163 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22164 tree res_op0;
22165 res_op0 = captures[0];
22166 tree res_op1;
22167 {
22168 tree ops1[1], res;
22169 {
22170 tree ops2[1], res;
22171 ops2[0] = captures[2];
22172 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22173 ops1[0] = res;
22174 }
22175 {
22176 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (ops1[0]), 1, ops1[0]);
22177 if (!res)
22178 return NULL_TREE;
22179 }
22180 res_op1 = res;
22181 }
22182 tree res;
22183 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22184 return res;
22185 }
22186 }
22187 break;
22188 }
22189 case CFN_BUILT_IN_EXP:
22190 {
22191 tree o30 = CALL_EXPR_ARG (op1, 0);
22192 {
22193/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22194 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22195/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22196 if (flag_unsafe_math_optimizations)
22197 {
22198 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22199 tree res_op0;
22200 res_op0 = captures[0];
22201 tree res_op1;
22202 {
22203 tree ops1[1], res;
22204 {
22205 tree ops2[1], res;
22206 ops2[0] = captures[2];
22207 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22208 ops1[0] = res;
22209 }
22210 {
22211 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (ops1[0]), 1, ops1[0]);
22212 if (!res)
22213 return NULL_TREE;
22214 }
22215 res_op1 = res;
22216 }
22217 tree res;
22218 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22219 return res;
22220 }
22221 }
22222 break;
22223 }
22224 case CFN_BUILT_IN_EXPL:
22225 {
22226 tree o30 = CALL_EXPR_ARG (op1, 0);
22227 {
22228/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22229 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22230/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22231 if (flag_unsafe_math_optimizations)
22232 {
22233 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22234 tree res_op0;
22235 res_op0 = captures[0];
22236 tree res_op1;
22237 {
22238 tree ops1[1], res;
22239 {
22240 tree ops2[1], res;
22241 ops2[0] = captures[2];
22242 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22243 ops1[0] = res;
22244 }
22245 {
22246 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (ops1[0]), 1, ops1[0]);
22247 if (!res)
22248 return NULL_TREE;
22249 }
22250 res_op1 = res;
22251 }
22252 tree res;
22253 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22254 return res;
22255 }
22256 }
22257 break;
22258 }
22259 case CFN_EXP:
22260 {
22261 tree o30 = CALL_EXPR_ARG (op1, 0);
22262 {
22263/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22264 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22265/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22266 if (flag_unsafe_math_optimizations)
22267 {
22268 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22269 tree res_op0;
22270 res_op0 = captures[0];
22271 tree res_op1;
22272 {
22273 tree ops1[1], res;
22274 {
22275 tree ops2[1], res;
22276 ops2[0] = captures[2];
22277 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22278 ops1[0] = res;
22279 }
22280 {
22281 res = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (ops1[0]), 1, ops1[0]);
22282 if (!res)
22283 return NULL_TREE;
22284 }
22285 res_op1 = res;
22286 }
22287 tree res;
22288 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22289 return res;
22290 }
22291 }
22292 break;
22293 }
22294 case CFN_BUILT_IN_EXP2F:
22295 {
22296 tree o30 = CALL_EXPR_ARG (op1, 0);
22297 {
22298/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22299 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22300/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22301 if (flag_unsafe_math_optimizations)
22302 {
22303 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22304 tree res_op0;
22305 res_op0 = captures[0];
22306 tree res_op1;
22307 {
22308 tree ops1[1], res;
22309 {
22310 tree ops2[1], res;
22311 ops2[0] = captures[2];
22312 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22313 ops1[0] = res;
22314 }
22315 {
22316 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (ops1[0]), 1, ops1[0]);
22317 if (!res)
22318 return NULL_TREE;
22319 }
22320 res_op1 = res;
22321 }
22322 tree res;
22323 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22324 return res;
22325 }
22326 }
22327 break;
22328 }
22329 case CFN_BUILT_IN_EXP2:
22330 {
22331 tree o30 = CALL_EXPR_ARG (op1, 0);
22332 {
22333/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22334 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22335/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22336 if (flag_unsafe_math_optimizations)
22337 {
22338 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22339 tree res_op0;
22340 res_op0 = captures[0];
22341 tree res_op1;
22342 {
22343 tree ops1[1], res;
22344 {
22345 tree ops2[1], res;
22346 ops2[0] = captures[2];
22347 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22348 ops1[0] = res;
22349 }
22350 {
22351 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (ops1[0]), 1, ops1[0]);
22352 if (!res)
22353 return NULL_TREE;
22354 }
22355 res_op1 = res;
22356 }
22357 tree res;
22358 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22359 return res;
22360 }
22361 }
22362 break;
22363 }
22364 case CFN_BUILT_IN_EXP2L:
22365 {
22366 tree o30 = CALL_EXPR_ARG (op1, 0);
22367 {
22368/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22369 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22370/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22371 if (flag_unsafe_math_optimizations)
22372 {
22373 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22374 tree res_op0;
22375 res_op0 = captures[0];
22376 tree res_op1;
22377 {
22378 tree ops1[1], res;
22379 {
22380 tree ops2[1], res;
22381 ops2[0] = captures[2];
22382 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22383 ops1[0] = res;
22384 }
22385 {
22386 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (ops1[0]), 1, ops1[0]);
22387 if (!res)
22388 return NULL_TREE;
22389 }
22390 res_op1 = res;
22391 }
22392 tree res;
22393 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22394 return res;
22395 }
22396 }
22397 break;
22398 }
22399 case CFN_EXP2:
22400 {
22401 tree o30 = CALL_EXPR_ARG (op1, 0);
22402 {
22403/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22404 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22405/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22406 if (flag_unsafe_math_optimizations)
22407 {
22408 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22409 tree res_op0;
22410 res_op0 = captures[0];
22411 tree res_op1;
22412 {
22413 tree ops1[1], res;
22414 {
22415 tree ops2[1], res;
22416 ops2[0] = captures[2];
22417 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22418 ops1[0] = res;
22419 }
22420 {
22421 res = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (ops1[0]), 1, ops1[0]);
22422 if (!res)
22423 return NULL_TREE;
22424 }
22425 res_op1 = res;
22426 }
22427 tree res;
22428 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22429 return res;
22430 }
22431 }
22432 break;
22433 }
22434 case CFN_BUILT_IN_EXP10F:
22435 {
22436 tree o30 = CALL_EXPR_ARG (op1, 0);
22437 {
22438/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22439 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22440/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22441 if (flag_unsafe_math_optimizations)
22442 {
22443 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22444 tree res_op0;
22445 res_op0 = captures[0];
22446 tree res_op1;
22447 {
22448 tree ops1[1], res;
22449 {
22450 tree ops2[1], res;
22451 ops2[0] = captures[2];
22452 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22453 ops1[0] = res;
22454 }
22455 {
22456 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (ops1[0]), 1, ops1[0]);
22457 if (!res)
22458 return NULL_TREE;
22459 }
22460 res_op1 = res;
22461 }
22462 tree res;
22463 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22464 return res;
22465 }
22466 }
22467 break;
22468 }
22469 case CFN_BUILT_IN_EXP10:
22470 {
22471 tree o30 = CALL_EXPR_ARG (op1, 0);
22472 {
22473/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22474 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22475/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22476 if (flag_unsafe_math_optimizations)
22477 {
22478 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22479 tree res_op0;
22480 res_op0 = captures[0];
22481 tree res_op1;
22482 {
22483 tree ops1[1], res;
22484 {
22485 tree ops2[1], res;
22486 ops2[0] = captures[2];
22487 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22488 ops1[0] = res;
22489 }
22490 {
22491 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (ops1[0]), 1, ops1[0]);
22492 if (!res)
22493 return NULL_TREE;
22494 }
22495 res_op1 = res;
22496 }
22497 tree res;
22498 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22499 return res;
22500 }
22501 }
22502 break;
22503 }
22504 case CFN_BUILT_IN_EXP10L:
22505 {
22506 tree o30 = CALL_EXPR_ARG (op1, 0);
22507 {
22508/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22509 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22510/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22511 if (flag_unsafe_math_optimizations)
22512 {
22513 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22514 tree res_op0;
22515 res_op0 = captures[0];
22516 tree res_op1;
22517 {
22518 tree ops1[1], res;
22519 {
22520 tree ops2[1], res;
22521 ops2[0] = captures[2];
22522 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22523 ops1[0] = res;
22524 }
22525 {
22526 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (ops1[0]), 1, ops1[0]);
22527 if (!res)
22528 return NULL_TREE;
22529 }
22530 res_op1 = res;
22531 }
22532 tree res;
22533 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22534 return res;
22535 }
22536 }
22537 break;
22538 }
22539 case CFN_EXP10:
22540 {
22541 tree o30 = CALL_EXPR_ARG (op1, 0);
22542 {
22543/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22544 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22545/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22546 if (flag_unsafe_math_optimizations)
22547 {
22548 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22549 tree res_op0;
22550 res_op0 = captures[0];
22551 tree res_op1;
22552 {
22553 tree ops1[1], res;
22554 {
22555 tree ops2[1], res;
22556 ops2[0] = captures[2];
22557 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22558 ops1[0] = res;
22559 }
22560 {
22561 res = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (ops1[0]), 1, ops1[0]);
22562 if (!res)
22563 return NULL_TREE;
22564 }
22565 res_op1 = res;
22566 }
22567 tree res;
22568 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22569 return res;
22570 }
22571 }
22572 break;
22573 }
22574 case CFN_BUILT_IN_POW10F:
22575 {
22576 tree o30 = CALL_EXPR_ARG (op1, 0);
22577 {
22578/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22579 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22580/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22581 if (flag_unsafe_math_optimizations)
22582 {
22583 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22584 tree res_op0;
22585 res_op0 = captures[0];
22586 tree res_op1;
22587 {
22588 tree ops1[1], res;
22589 {
22590 tree ops2[1], res;
22591 ops2[0] = captures[2];
22592 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22593 ops1[0] = res;
22594 }
22595 {
22596 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (ops1[0]), 1, ops1[0]);
22597 if (!res)
22598 return NULL_TREE;
22599 }
22600 res_op1 = res;
22601 }
22602 tree res;
22603 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22604 return res;
22605 }
22606 }
22607 break;
22608 }
22609 case CFN_BUILT_IN_POW10:
22610 {
22611 tree o30 = CALL_EXPR_ARG (op1, 0);
22612 {
22613/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22614 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22615/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22616 if (flag_unsafe_math_optimizations)
22617 {
22618 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22619 tree res_op0;
22620 res_op0 = captures[0];
22621 tree res_op1;
22622 {
22623 tree ops1[1], res;
22624 {
22625 tree ops2[1], res;
22626 ops2[0] = captures[2];
22627 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22628 ops1[0] = res;
22629 }
22630 {
22631 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (ops1[0]), 1, ops1[0]);
22632 if (!res)
22633 return NULL_TREE;
22634 }
22635 res_op1 = res;
22636 }
22637 tree res;
22638 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22639 return res;
22640 }
22641 }
22642 break;
22643 }
22644 case CFN_BUILT_IN_POW10L:
22645 {
22646 tree o30 = CALL_EXPR_ARG (op1, 0);
22647 {
22648/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22649 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
22650/* #line 3109 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22651 if (flag_unsafe_math_optimizations)
22652 {
22653 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3138, %s:%d\n", __FILE__, __LINE__);
22654 tree res_op0;
22655 res_op0 = captures[0];
22656 tree res_op1;
22657 {
22658 tree ops1[1], res;
22659 {
22660 tree ops2[1], res;
22661 ops2[0] = captures[2];
22662 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
22663 ops1[0] = res;
22664 }
22665 {
22666 res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (ops1[0]), 1, ops1[0]);
22667 if (!res)
22668 return NULL_TREE;
22669 }
22670 res_op1 = res;
22671 }
22672 tree res;
22673 res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
22674 return res;
22675 }
22676 }
22677 break;
22678 }
22679 default:;
22680 }
22681 break;
22682 default:;
22683 }
22684 switch (TREE_CODE (op0))
22685 {
22686 case CALL_EXPR:
22687 switch (get_call_combined_fn (op0))
22688 {
22689 case CFN_BUILT_IN_SINF:
22690 {
22691 tree o20 = CALL_EXPR_ARG (op0, 0);
22692 switch (TREE_CODE (op1))
22693 {
22694 case CALL_EXPR:
22695 switch (get_call_combined_fn (op1))
22696 {
22697 case CFN_BUILT_IN_COSF:
22698 {
22699 tree o40 = CALL_EXPR_ARG (op1, 0);
22700 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22701 {
22702 {
22703/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22704 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22705 tree res = generic_simplify_179 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
22706 if (res) return res;
22707 }
22708 }
22709 break;
22710 }
22711 case CFN_BUILT_IN_TANF:
22712 {
22713 tree o40 = CALL_EXPR_ARG (op1, 0);
22714 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22715 {
22716 {
22717/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22718 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22719 tree res = generic_simplify_158 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
22720 if (res) return res;
22721 }
22722 }
22723 break;
22724 }
22725 default:;
22726 }
22727 break;
22728 default:;
22729 }
22730 break;
22731 }
22732 case CFN_BUILT_IN_SIN:
22733 {
22734 tree o20 = CALL_EXPR_ARG (op0, 0);
22735 switch (TREE_CODE (op1))
22736 {
22737 case CALL_EXPR:
22738 switch (get_call_combined_fn (op1))
22739 {
22740 case CFN_BUILT_IN_COS:
22741 {
22742 tree o40 = CALL_EXPR_ARG (op1, 0);
22743 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22744 {
22745 {
22746/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22747 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22748 tree res = generic_simplify_179 (loc, type, op0, op1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
22749 if (res) return res;
22750 }
22751 }
22752 break;
22753 }
22754 case CFN_BUILT_IN_TAN:
22755 {
22756 tree o40 = CALL_EXPR_ARG (op1, 0);
22757 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22758 {
22759 {
22760/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22761 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22762 tree res = generic_simplify_158 (loc, type, op0, op1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
22763 if (res) return res;
22764 }
22765 }
22766 break;
22767 }
22768 default:;
22769 }
22770 break;
22771 default:;
22772 }
22773 break;
22774 }
22775 case CFN_BUILT_IN_SINL:
22776 {
22777 tree o20 = CALL_EXPR_ARG (op0, 0);
22778 switch (TREE_CODE (op1))
22779 {
22780 case CALL_EXPR:
22781 switch (get_call_combined_fn (op1))
22782 {
22783 case CFN_BUILT_IN_COSL:
22784 {
22785 tree o40 = CALL_EXPR_ARG (op1, 0);
22786 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22787 {
22788 {
22789/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22790 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22791 tree res = generic_simplify_179 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
22792 if (res) return res;
22793 }
22794 }
22795 break;
22796 }
22797 case CFN_BUILT_IN_TANL:
22798 {
22799 tree o40 = CALL_EXPR_ARG (op1, 0);
22800 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22801 {
22802 {
22803/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22804 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22805 tree res = generic_simplify_158 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
22806 if (res) return res;
22807 }
22808 }
22809 break;
22810 }
22811 default:;
22812 }
22813 break;
22814 default:;
22815 }
22816 break;
22817 }
22818 case CFN_SIN:
22819 {
22820 tree o20 = CALL_EXPR_ARG (op0, 0);
22821 switch (TREE_CODE (op1))
22822 {
22823 case CALL_EXPR:
22824 switch (get_call_combined_fn (op1))
22825 {
22826 case CFN_COS:
22827 {
22828 tree o40 = CALL_EXPR_ARG (op1, 0);
22829 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22830 {
22831 {
22832/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22833 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22834 tree res = generic_simplify_179 (loc, type, op0, op1, captures, CFN_SIN, CFN_COS, CFN_TAN);
22835 if (res) return res;
22836 }
22837 }
22838 break;
22839 }
22840 case CFN_TAN:
22841 {
22842 tree o40 = CALL_EXPR_ARG (op1, 0);
22843 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22844 {
22845 {
22846/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22847 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22848 tree res = generic_simplify_158 (loc, type, op0, op1, captures, CFN_SIN, CFN_TAN, CFN_COS);
22849 if (res) return res;
22850 }
22851 }
22852 break;
22853 }
22854 default:;
22855 }
22856 break;
22857 default:;
22858 }
22859 break;
22860 }
22861 case CFN_BUILT_IN_COSF:
22862 {
22863 tree o20 = CALL_EXPR_ARG (op0, 0);
22864 switch (TREE_CODE (op1))
22865 {
22866 case CALL_EXPR:
22867 switch (get_call_combined_fn (op1))
22868 {
22869 case CFN_BUILT_IN_SINF:
22870 {
22871 tree o40 = CALL_EXPR_ARG (op1, 0);
22872 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22873 {
22874 {
22875/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22876 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22877 tree res = generic_simplify_135 (loc, type, op0, op1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
22878 if (res) return res;
22879 }
22880 }
22881 break;
22882 }
22883 default:;
22884 }
22885 break;
22886 default:;
22887 }
22888 break;
22889 }
22890 case CFN_BUILT_IN_COS:
22891 {
22892 tree o20 = CALL_EXPR_ARG (op0, 0);
22893 switch (TREE_CODE (op1))
22894 {
22895 case CALL_EXPR:
22896 switch (get_call_combined_fn (op1))
22897 {
22898 case CFN_BUILT_IN_SIN:
22899 {
22900 tree o40 = CALL_EXPR_ARG (op1, 0);
22901 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22902 {
22903 {
22904/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22905 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22906 tree res = generic_simplify_135 (loc, type, op0, op1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
22907 if (res) return res;
22908 }
22909 }
22910 break;
22911 }
22912 default:;
22913 }
22914 break;
22915 default:;
22916 }
22917 break;
22918 }
22919 case CFN_BUILT_IN_COSL:
22920 {
22921 tree o20 = CALL_EXPR_ARG (op0, 0);
22922 switch (TREE_CODE (op1))
22923 {
22924 case CALL_EXPR:
22925 switch (get_call_combined_fn (op1))
22926 {
22927 case CFN_BUILT_IN_SINL:
22928 {
22929 tree o40 = CALL_EXPR_ARG (op1, 0);
22930 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22931 {
22932 {
22933/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22934 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22935 tree res = generic_simplify_135 (loc, type, op0, op1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
22936 if (res) return res;
22937 }
22938 }
22939 break;
22940 }
22941 default:;
22942 }
22943 break;
22944 default:;
22945 }
22946 break;
22947 }
22948 case CFN_COS:
22949 {
22950 tree o20 = CALL_EXPR_ARG (op0, 0);
22951 switch (TREE_CODE (op1))
22952 {
22953 case CALL_EXPR:
22954 switch (get_call_combined_fn (op1))
22955 {
22956 case CFN_SIN:
22957 {
22958 tree o40 = CALL_EXPR_ARG (op1, 0);
22959 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22960 {
22961 {
22962/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22963 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22964 tree res = generic_simplify_135 (loc, type, op0, op1, captures, CFN_COS, CFN_SIN, CFN_TAN);
22965 if (res) return res;
22966 }
22967 }
22968 break;
22969 }
22970 default:;
22971 }
22972 break;
22973 default:;
22974 }
22975 break;
22976 }
22977 case CFN_BUILT_IN_TANF:
22978 {
22979 tree o20 = CALL_EXPR_ARG (op0, 0);
22980 switch (TREE_CODE (op1))
22981 {
22982 case CALL_EXPR:
22983 switch (get_call_combined_fn (op1))
22984 {
22985 case CFN_BUILT_IN_SINF:
22986 {
22987 tree o40 = CALL_EXPR_ARG (op1, 0);
22988 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
22989 {
22990 {
22991/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
22992 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
22993 tree res = generic_simplify_43 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
22994 if (res) return res;
22995 }
22996 }
22997 break;
22998 }
22999 default:;
23000 }
23001 break;
23002 default:;
23003 }
23004 break;
23005 }
23006 case CFN_BUILT_IN_TAN:
23007 {
23008 tree o20 = CALL_EXPR_ARG (op0, 0);
23009 switch (TREE_CODE (op1))
23010 {
23011 case CALL_EXPR:
23012 switch (get_call_combined_fn (op1))
23013 {
23014 case CFN_BUILT_IN_SIN:
23015 {
23016 tree o40 = CALL_EXPR_ARG (op1, 0);
23017 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
23018 {
23019 {
23020/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23021 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
23022 tree res = generic_simplify_43 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
23023 if (res) return res;
23024 }
23025 }
23026 break;
23027 }
23028 default:;
23029 }
23030 break;
23031 default:;
23032 }
23033 break;
23034 }
23035 case CFN_BUILT_IN_TANL:
23036 {
23037 tree o20 = CALL_EXPR_ARG (op0, 0);
23038 switch (TREE_CODE (op1))
23039 {
23040 case CALL_EXPR:
23041 switch (get_call_combined_fn (op1))
23042 {
23043 case CFN_BUILT_IN_SINL:
23044 {
23045 tree o40 = CALL_EXPR_ARG (op1, 0);
23046 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
23047 {
23048 {
23049/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23050 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
23051 tree res = generic_simplify_43 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
23052 if (res) return res;
23053 }
23054 }
23055 break;
23056 }
23057 default:;
23058 }
23059 break;
23060 default:;
23061 }
23062 break;
23063 }
23064 case CFN_TAN:
23065 {
23066 tree o20 = CALL_EXPR_ARG (op0, 0);
23067 switch (TREE_CODE (op1))
23068 {
23069 case CALL_EXPR:
23070 switch (get_call_combined_fn (op1))
23071 {
23072 case CFN_SIN:
23073 {
23074 tree o40 = CALL_EXPR_ARG (op1, 0);
23075 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
23076 {
23077 {
23078/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23079 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
23080 tree res = generic_simplify_43 (loc, type, op0, op1, captures, CFN_TAN, CFN_SIN, CFN_COS);
23081 if (res) return res;
23082 }
23083 }
23084 break;
23085 }
23086 default:;
23087 }
23088 break;
23089 default:;
23090 }
23091 break;
23092 }
23093 case CFN_BUILT_IN_POWF:
23094 {
23095 tree o20 = CALL_EXPR_ARG (op0, 0);
23096 tree o21 = CALL_EXPR_ARG (op0, 1);
23097 switch (TREE_CODE (o21))
23098 {
23099 case REAL_CST:
23100 {
23101 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
23102 {
23103 {
23104/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23105 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23106 tree res = generic_simplify_77 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
23107 if (res) return res;
23108 }
23109 }
23110 break;
23111 }
23112 default:;
23113 }
23114 break;
23115 }
23116 case CFN_BUILT_IN_POW:
23117 {
23118 tree o20 = CALL_EXPR_ARG (op0, 0);
23119 tree o21 = CALL_EXPR_ARG (op0, 1);
23120 switch (TREE_CODE (o21))
23121 {
23122 case REAL_CST:
23123 {
23124 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
23125 {
23126 {
23127/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23128 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23129 tree res = generic_simplify_77 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
23130 if (res) return res;
23131 }
23132 }
23133 break;
23134 }
23135 default:;
23136 }
23137 break;
23138 }
23139 case CFN_BUILT_IN_POWL:
23140 {
23141 tree o20 = CALL_EXPR_ARG (op0, 0);
23142 tree o21 = CALL_EXPR_ARG (op0, 1);
23143 switch (TREE_CODE (o21))
23144 {
23145 case REAL_CST:
23146 {
23147 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
23148 {
23149 {
23150/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23151 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23152 tree res = generic_simplify_77 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
23153 if (res) return res;
23154 }
23155 }
23156 break;
23157 }
23158 default:;
23159 }
23160 break;
23161 }
23162 case CFN_POW:
23163 {
23164 tree o20 = CALL_EXPR_ARG (op0, 0);
23165 tree o21 = CALL_EXPR_ARG (op0, 1);
23166 switch (TREE_CODE (o21))
23167 {
23168 case REAL_CST:
23169 {
23170 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
23171 {
23172 {
23173/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23174 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23175 tree res = generic_simplify_77 (loc, type, op0, op1, captures, CFN_POW);
23176 if (res) return res;
23177 }
23178 }
23179 break;
23180 }
23181 default:;
23182 }
23183 break;
23184 }
23185 default:;
23186 }
23187 break;
23188 default:;
23189 }
23190 switch (TREE_CODE (op1))
23191 {
23192 case CALL_EXPR:
23193 switch (get_call_combined_fn (op1))
23194 {
23195 case CFN_BUILT_IN_POWF:
23196 {
23197 tree o30 = CALL_EXPR_ARG (op1, 0);
23198 tree o31 = CALL_EXPR_ARG (op1, 1);
23199 {
23200/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23201 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
23202 tree res = generic_simplify_222 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
23203 if (res) return res;
23204 }
23205 break;
23206 }
23207 case CFN_BUILT_IN_POW:
23208 {
23209 tree o30 = CALL_EXPR_ARG (op1, 0);
23210 tree o31 = CALL_EXPR_ARG (op1, 1);
23211 {
23212/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23213 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
23214 tree res = generic_simplify_222 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
23215 if (res) return res;
23216 }
23217 break;
23218 }
23219 case CFN_BUILT_IN_POWL:
23220 {
23221 tree o30 = CALL_EXPR_ARG (op1, 0);
23222 tree o31 = CALL_EXPR_ARG (op1, 1);
23223 {
23224/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23225 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
23226 tree res = generic_simplify_222 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
23227 if (res) return res;
23228 }
23229 break;
23230 }
23231 case CFN_POW:
23232 {
23233 tree o30 = CALL_EXPR_ARG (op1, 0);
23234 tree o31 = CALL_EXPR_ARG (op1, 1);
23235 {
23236/* #line 3301 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23237 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
23238 tree res = generic_simplify_222 (loc, type, op0, op1, captures, CFN_POW);
23239 if (res) return res;
23240 }
23241 break;
23242 }
23243 default:;
23244 }
23245 break;
23246 default:;
23247 }
23248 return NULL_TREE;
23249}
23250
23251static tree
23252generic_simplify_CEIL_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
23253{
23254 if (integer_zerop (op0))
23255 {
23256 {
23257/* #line 300 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23258 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23259 tree res = generic_simplify_125 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23260 if (res) return res;
23261 }
23262 }
23263 if (integer_onep (op1))
23264 {
23265 {
23266/* #line 305 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23267 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23268 tree res = generic_simplify_189 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23269 if (res) return res;
23270 }
23271 }
23272 if (integer_minus_onep (op1))
23273 {
23274 {
23275/* #line 309 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23276 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23277 tree res = generic_simplify_17 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23278 if (res) return res;
23279 }
23280 }
23281 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
23282 {
23283 {
23284/* #line 315 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23285 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23286 tree res = generic_simplify_110 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23287 if (res) return res;
23288 }
23289 }
23290 switch (TREE_CODE (op0))
23291 {
23292 case CEIL_MOD_EXPR:
23293 {
23294 tree o20 = TREE_OPERAND (op0, 0);
23295 tree o21 = TREE_OPERAND (op0, 1);
23296 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
23297 {
23298 {
23299/* #line 320 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23300 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23301 tree res = generic_simplify_185 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23302 if (res) return res;
23303 }
23304 }
23305 break;
23306 }
23307 case MULT_EXPR:
23308 {
23309 tree o20 = TREE_OPERAND (op0, 0);
23310 tree o21 = TREE_OPERAND (op0, 1);
23311 switch (TREE_CODE (o21))
23312 {
23313 case INTEGER_CST:
23314 {
23315 switch (TREE_CODE (op1))
23316 {
23317 case INTEGER_CST:
23318 {
23319 {
23320/* #line 324 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23321 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
23322 tree res = generic_simplify_21 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
23323 if (res) return res;
23324 }
23325 break;
23326 }
23327 default:;
23328 }
23329 break;
23330 }
23331 default:;
23332 }
23333 break;
23334 }
23335 default:;
23336 }
23337 return NULL_TREE;
23338}
23339
23340static tree
23341generic_simplify_FLOOR_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
23342{
23343 if (integer_zerop (op0))
23344 {
23345 {
23346/* #line 300 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23347 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23348 tree res = generic_simplify_125 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23349 if (res) return res;
23350 }
23351 }
23352 if (integer_onep (op1))
23353 {
23354 {
23355/* #line 305 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23356 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23357 tree res = generic_simplify_189 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23358 if (res) return res;
23359 }
23360 }
23361 if (integer_minus_onep (op1))
23362 {
23363 {
23364/* #line 309 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23365 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23366 tree res = generic_simplify_17 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23367 if (res) return res;
23368 }
23369 }
23370 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
23371 {
23372 {
23373/* #line 315 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23374 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23375 tree res = generic_simplify_110 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23376 if (res) return res;
23377 }
23378 }
23379 switch (TREE_CODE (op0))
23380 {
23381 case FLOOR_MOD_EXPR:
23382 {
23383 tree o20 = TREE_OPERAND (op0, 0);
23384 tree o21 = TREE_OPERAND (op0, 1);
23385 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
23386 {
23387 {
23388/* #line 320 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23389 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23390 tree res = generic_simplify_185 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23391 if (res) return res;
23392 }
23393 }
23394 break;
23395 }
23396 case MULT_EXPR:
23397 {
23398 tree o20 = TREE_OPERAND (op0, 0);
23399 tree o21 = TREE_OPERAND (op0, 1);
23400 switch (TREE_CODE (o21))
23401 {
23402 case INTEGER_CST:
23403 {
23404 switch (TREE_CODE (op1))
23405 {
23406 case INTEGER_CST:
23407 {
23408 {
23409/* #line 324 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23410 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
23411 tree res = generic_simplify_21 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23412 if (res) return res;
23413 }
23414 break;
23415 }
23416 default:;
23417 }
23418 break;
23419 }
23420 default:;
23421 }
23422 break;
23423 }
23424 default:;
23425 }
23426 switch (TREE_CODE (op1))
23427 {
23428 CASE_CONVERT:
23429 {
23430 tree o30 = TREE_OPERAND (op1, 0);
23431 tree o30_pops[1];
23432 if (tree_power_of_two_cand (o30, o30_pops))
23433 {
23434 tree o40 = o30_pops[0];
23435 {
23436/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23437 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
23438 tree res = generic_simplify_70 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23439 if (res) return res;
23440 }
23441}
23442 break;
23443 }
23444 default:;
23445 }
23446tree op1_pops[1];
23447if (tree_power_of_two_cand (op1, op1_pops))
23448 {
23449 tree o30 = op1_pops[0];
23450 {
23451/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23452 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
23453 tree res = generic_simplify_92 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
23454 if (res) return res;
23455 }
23456}
23457 return NULL_TREE;
23458}
23459
23460static tree
23461generic_simplify_ROUND_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
23462{
23463 if (integer_zerop (op0))
23464 {
23465 {
23466/* #line 300 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23467 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23468 tree res = generic_simplify_125 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23469 if (res) return res;
23470 }
23471 }
23472 if (integer_onep (op1))
23473 {
23474 {
23475/* #line 305 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23476 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23477 tree res = generic_simplify_189 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23478 if (res) return res;
23479 }
23480 }
23481 if (integer_minus_onep (op1))
23482 {
23483 {
23484/* #line 309 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23485 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23486 tree res = generic_simplify_17 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23487 if (res) return res;
23488 }
23489 }
23490 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
23491 {
23492 {
23493/* #line 315 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23494 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23495 tree res = generic_simplify_110 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23496 if (res) return res;
23497 }
23498 }
23499 switch (TREE_CODE (op0))
23500 {
23501 case ROUND_MOD_EXPR:
23502 {
23503 tree o20 = TREE_OPERAND (op0, 0);
23504 tree o21 = TREE_OPERAND (op0, 1);
23505 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
23506 {
23507 {
23508/* #line 320 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23509 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23510 tree res = generic_simplify_185 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23511 if (res) return res;
23512 }
23513 }
23514 break;
23515 }
23516 case MULT_EXPR:
23517 {
23518 tree o20 = TREE_OPERAND (op0, 0);
23519 tree o21 = TREE_OPERAND (op0, 1);
23520 switch (TREE_CODE (o21))
23521 {
23522 case INTEGER_CST:
23523 {
23524 switch (TREE_CODE (op1))
23525 {
23526 case INTEGER_CST:
23527 {
23528 {
23529/* #line 324 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23530 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
23531 tree res = generic_simplify_21 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
23532 if (res) return res;
23533 }
23534 break;
23535 }
23536 default:;
23537 }
23538 break;
23539 }
23540 default:;
23541 }
23542 break;
23543 }
23544 default:;
23545 }
23546 return NULL_TREE;
23547}
23548
23549static tree
23550generic_simplify_TRUNC_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
23551{
23552 if (integer_zerop (op0))
23553 {
23554 {
23555/* #line 300 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23556 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23557 tree res = generic_simplify_125 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23558 if (res) return res;
23559 }
23560 }
23561 if (integer_onep (op1))
23562 {
23563 {
23564/* #line 305 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23565 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23566 tree res = generic_simplify_189 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23567 if (res) return res;
23568 }
23569 }
23570 if (integer_minus_onep (op1))
23571 {
23572 {
23573/* #line 309 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23574 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23575 tree res = generic_simplify_17 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23576 if (res) return res;
23577 }
23578 }
23579 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
23580 {
23581 {
23582/* #line 315 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23583 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23584 tree res = generic_simplify_110 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23585 if (res) return res;
23586 }
23587 }
23588 switch (TREE_CODE (op0))
23589 {
23590 case TRUNC_MOD_EXPR:
23591 {
23592 tree o20 = TREE_OPERAND (op0, 0);
23593 tree o21 = TREE_OPERAND (op0, 1);
23594 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
23595 {
23596 {
23597/* #line 320 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23598 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
23599 tree res = generic_simplify_185 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23600 if (res) return res;
23601 }
23602 }
23603 break;
23604 }
23605 case MULT_EXPR:
23606 {
23607 tree o20 = TREE_OPERAND (op0, 0);
23608 tree o21 = TREE_OPERAND (op0, 1);
23609 switch (TREE_CODE (o21))
23610 {
23611 case INTEGER_CST:
23612 {
23613 switch (TREE_CODE (op1))
23614 {
23615 case INTEGER_CST:
23616 {
23617 {
23618/* #line 324 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23619 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
23620 tree res = generic_simplify_21 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23621 if (res) return res;
23622 }
23623 break;
23624 }
23625 default:;
23626 }
23627 break;
23628 }
23629 default:;
23630 }
23631 break;
23632 }
23633 default:;
23634 }
23635 switch (TREE_CODE (op1))
23636 {
23637 case INTEGER_CST:
23638 {
23639 {
23640/* #line 332 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23641 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23642/* #line 332 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23643 if (TYPE_SIGN (type) == SIGNED && !TREE_OVERFLOW (captures[1]) && wi::neg_p (captures[1]) && !TYPE_OVERFLOW_TRAPS (type) && !sign_bit_p (captures[1], captures[1]))
23644 {
23645 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:338, %s:%d\n", __FILE__, __LINE__);
23646 tree res_op0;
23647 res_op0 = captures[0];
23648 tree res_op1;
23649 {
23650 tree ops1[1], res;
23651 ops1[0] = captures[1];
23652 res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
23653 res_op1 = res;
23654 }
23655 tree res;
23656 res = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
23657 return res;
23658 }
23659 }
23660 break;
23661 }
23662 CASE_CONVERT:
23663 {
23664 tree o30 = TREE_OPERAND (op1, 0);
23665 switch (TREE_CODE (o30))
23666 {
23667 case NEGATE_EXPR:
23668 {
23669 tree o40 = TREE_OPERAND (o30, 0);
23670 {
23671/* #line 343 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23672 tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
23673 tree res = generic_simplify_116 (loc, type, op0, op1, captures);
23674 if (res) return res;
23675 }
23676 break;
23677 }
23678 default:;
23679 }
23680 tree o30_pops[1];
23681 if (tree_power_of_two_cand (o30, o30_pops))
23682 {
23683 tree o40 = o30_pops[0];
23684 {
23685/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23686 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
23687 tree res = generic_simplify_70 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23688 if (res) return res;
23689 }
23690}
23691 break;
23692 }
23693 case NEGATE_EXPR:
23694 {
23695 tree o30 = TREE_OPERAND (op1, 0);
23696 {
23697/* #line 343 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23698 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
23699 tree res = generic_simplify_116 (loc, type, op0, op1, captures);
23700 if (res) return res;
23701 }
23702 break;
23703 }
23704 default:;
23705 }
23706tree op1_pops[1];
23707if (tree_power_of_two_cand (op1, op1_pops))
23708 {
23709 tree o30 = op1_pops[0];
23710 {
23711/* #line 372 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23712 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
23713 tree res = generic_simplify_92 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
23714 if (res) return res;
23715 }
23716}
23717 return NULL_TREE;
23718}
23719
23720static tree
23721generic_simplify_BIT_AND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
23722{
23723 switch (TREE_CODE (op0))
23724 {
23725 CASE_CONVERT:
23726 {
23727 tree o20 = TREE_OPERAND (op0, 0);
23728 switch (TREE_CODE (op1))
23729 {
23730 CASE_CONVERT:
23731 {
23732 tree o40 = TREE_OPERAND (op1, 0);
23733 switch (TREE_CODE (o40))
23734 {
23735 case BIT_NOT_EXPR:
23736 {
23737 tree o50 = TREE_OPERAND (o40, 0);
23738 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
23739 {
23740 {
23741/* #line 534 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23742 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
23743 tree res = generic_simplify_47 (loc, type, op0, op1, captures);
23744 if (res) return res;
23745 }
23746 }
23747 break;
23748 }
23749 default:;
23750 }
23751 break;
23752 }
23753 default:;
23754 }
23755 switch (TREE_CODE (o20))
23756 {
23757 case BIT_NOT_EXPR:
23758 {
23759 tree o30 = TREE_OPERAND (o20, 0);
23760 switch (TREE_CODE (op1))
23761 {
23762 CASE_CONVERT:
23763 {
23764 tree o50 = TREE_OPERAND (op1, 0);
23765 if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
23766 {
23767 {
23768/* #line 534 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23769 tree captures[1] ATTRIBUTE_UNUSED = { o30 };
23770 tree res = generic_simplify_47 (loc, type, op0, op1, captures);
23771 if (res) return res;
23772 }
23773 }
23774 break;
23775 }
23776 default:;
23777 }
23778 break;
23779 }
23780 default:;
23781 }
23782 break;
23783 }
23784 default:;
23785 }
23786 switch (TREE_CODE (op1))
23787 {
23788 case BIT_NOT_EXPR:
23789 {
23790 tree o30 = TREE_OPERAND (op1, 0);
23791 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
23792 {
23793 {
23794/* #line 534 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23795 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23796 tree res = generic_simplify_47 (loc, type, op0, op1, captures);
23797 if (res) return res;
23798 }
23799 }
23800 break;
23801 }
23802 default:;
23803 }
23804 switch (TREE_CODE (op0))
23805 {
23806 case BIT_NOT_EXPR:
23807 {
23808 tree o20 = TREE_OPERAND (op0, 0);
23809 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
23810 {
23811 {
23812/* #line 534 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23813 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
23814 tree res = generic_simplify_47 (loc, type, op0, op1, captures);
23815 if (res) return res;
23816 }
23817 }
23818 break;
23819 }
23820 default:;
23821 }
23822 switch (TREE_CODE (op1))
23823 {
23824 case PLUS_EXPR:
23825 {
23826 tree o30 = TREE_OPERAND (op1, 0);
23827 tree o31 = TREE_OPERAND (op1, 1);
23828 switch (TREE_CODE (o30))
23829 {
23830 case LSHIFT_EXPR:
23831 {
23832 tree o40 = TREE_OPERAND (o30, 0);
23833 tree o41 = TREE_OPERAND (o30, 1);
23834 if (integer_onep (o40))
23835 {
23836 if (integer_minus_onep (o31))
23837 {
23838 {
23839/* #line 539 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23840 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o41 };
23841/* #line 539 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23842 if (TYPE_UNSIGNED (type))
23843 {
23844 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
23845 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:540, %s:%d\n", __FILE__, __LINE__);
23846 tree res_op0;
23847 res_op0 = captures[0];
23848 tree res_op1;
23849 {
23850 tree ops1[1], res;
23851 {
23852 tree ops2[2], res;
23853 ops2[0] = build_all_ones_cst (type);
23854 ops2[1] = captures[3];
23855 res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
23856 ops1[0] = res;
23857 }
23858 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
23859 res_op1 = res;
23860 }
23861 tree res;
23862 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
23863 return res;
23864 }
23865 }
23866 }
23867 }
23868 break;
23869 }
23870 default:;
23871 }
23872 break;
23873 }
23874 default:;
23875 }
23876 switch (TREE_CODE (op0))
23877 {
23878 case PLUS_EXPR:
23879 {
23880 tree o20 = TREE_OPERAND (op0, 0);
23881 tree o21 = TREE_OPERAND (op0, 1);
23882 switch (TREE_CODE (o20))
23883 {
23884 case LSHIFT_EXPR:
23885 {
23886 tree o30 = TREE_OPERAND (o20, 0);
23887 tree o31 = TREE_OPERAND (o20, 1);
23888 if (integer_onep (o30))
23889 {
23890 if (integer_minus_onep (o21))
23891 {
23892 {
23893/* #line 539 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23894 tree captures[4] ATTRIBUTE_UNUSED = { op1, op0, o20, o31 };
23895/* #line 539 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23896 if (TYPE_UNSIGNED (type))
23897 {
23898 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
23899 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:540, %s:%d\n", __FILE__, __LINE__);
23900 tree res_op0;
23901 res_op0 = captures[0];
23902 tree res_op1;
23903 {
23904 tree ops1[1], res;
23905 {
23906 tree ops2[2], res;
23907 ops2[0] = build_all_ones_cst (type);
23908 ops2[1] = captures[3];
23909 res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
23910 ops1[0] = res;
23911 }
23912 res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
23913 res_op1 = res;
23914 }
23915 tree res;
23916 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
23917 return res;
23918 }
23919 }
23920 }
23921 }
23922 break;
23923 }
23924 default:;
23925 }
23926 break;
23927 }
23928 case EQ_EXPR:
23929 {
23930 tree o20 = TREE_OPERAND (op0, 0);
23931 tree o21 = TREE_OPERAND (op0, 1);
23932 if (integer_zerop (o21))
23933 {
23934 switch (TREE_CODE (op1))
23935 {
23936 case EQ_EXPR:
23937 {
23938 tree o50 = TREE_OPERAND (op1, 0);
23939 tree o51 = TREE_OPERAND (op1, 1);
23940 if (integer_zerop (o51))
23941 {
23942 {
23943/* #line 549 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23944 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
23945 tree res = generic_simplify_36 (loc, type, op0, op1, captures, BIT_AND_EXPR, EQ_EXPR);
23946 if (res) return res;
23947 }
23948 }
23949 break;
23950 }
23951 default:;
23952 }
23953 }
23954 break;
23955 }
23956 default:;
23957 }
23958 if (integer_zerop (op1))
23959 {
23960 {
23961/* #line 616 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23962 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
23963 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:616, %s:%d\n", __FILE__, __LINE__);
23964 tree res;
23965 res = captures[1];
23966 if (TREE_SIDE_EFFECTS (captures[0]))
23967 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
23968 return res;
23969 }
23970 }
23971 if (integer_all_onesp (op1))
23972 {
23973 {
23974/* #line 639 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23975 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23976 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
23977 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:639, %s:%d\n", __FILE__, __LINE__);
23978 tree res_op0;
23979 res_op0 = captures[0];
23980 tree res;
23981 res = non_lvalue_loc (loc, res_op0);
23982 return res;
23983 }
23984 }
23985 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
23986 {
23987 {
23988/* #line 645 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
23989 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
23990 tree res = generic_simplify_57 (loc, type, op0, op1, captures, BIT_AND_EXPR);
23991 if (res) return res;
23992 }
23993 }
23994 switch (TREE_CODE (op1))
23995 {
23996 case BIT_NOT_EXPR:
23997 {
23998 tree o30 = TREE_OPERAND (op1, 0);
23999 switch (TREE_CODE (o30))
24000 {
24001 case BIT_AND_EXPR:
24002 {
24003 tree o40 = TREE_OPERAND (o30, 0);
24004 tree o41 = TREE_OPERAND (o30, 1);
24005 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
24006 {
24007 {
24008/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24009 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
24010 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24011 if (res) return res;
24012 }
24013 }
24014 if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
24015 {
24016 {
24017/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24018 tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
24019 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24020 if (res) return res;
24021 }
24022 }
24023 break;
24024 }
24025 default:;
24026 }
24027 break;
24028 }
24029 default:;
24030 }
24031 switch (TREE_CODE (op0))
24032 {
24033 case BIT_NOT_EXPR:
24034 {
24035 tree o20 = TREE_OPERAND (op0, 0);
24036 switch (TREE_CODE (o20))
24037 {
24038 case BIT_AND_EXPR:
24039 {
24040 tree o30 = TREE_OPERAND (o20, 0);
24041 tree o31 = TREE_OPERAND (o20, 1);
24042 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
24043 {
24044 {
24045/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24046 tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
24047 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24048 if (res) return res;
24049 }
24050 }
24051 if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
24052 {
24053 {
24054/* #line 666 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24055 tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
24056 tree res = generic_simplify_62 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24057 if (res) return res;
24058 }
24059 }
24060 break;
24061 }
24062 default:;
24063 }
24064 switch (TREE_CODE (op1))
24065 {
24066 case BIT_IOR_EXPR:
24067 {
24068 tree o40 = TREE_OPERAND (op1, 0);
24069 tree o41 = TREE_OPERAND (op1, 1);
24070 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
24071 {
24072 {
24073/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24074 tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
24075 tree res = generic_simplify_65 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24076 if (res) return res;
24077 }
24078 }
24079 if (o41 == o20 || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
24080 {
24081 {
24082/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24083 tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
24084 tree res = generic_simplify_65 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24085 if (res) return res;
24086 }
24087 }
24088 break;
24089 }
24090 default:;
24091 }
24092 switch (TREE_CODE (o20))
24093 {
24094 case BIT_AND_EXPR:
24095 {
24096 tree o30 = TREE_OPERAND (o20, 0);
24097 tree o31 = TREE_OPERAND (o20, 1);
24098 switch (TREE_CODE (op1))
24099 {
24100 case BIT_IOR_EXPR:
24101 {
24102 tree o60 = TREE_OPERAND (op1, 0);
24103 tree o61 = TREE_OPERAND (op1, 1);
24104 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
24105 {
24106 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
24107 {
24108 {
24109/* #line 726 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24110 tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
24111 tree res = generic_simplify_74 (loc, type, op0, op1, captures);
24112 if (res) return res;
24113 }
24114 }
24115 }
24116 break;
24117 }
24118 default:;
24119 }
24120 break;
24121 }
24122 default:;
24123 }
24124 switch (TREE_CODE (op1))
24125 {
24126 CASE_CONVERT:
24127 {
24128 tree o40 = TREE_OPERAND (op1, 0);
24129 switch (TREE_CODE (o40))
24130 {
24131 case BIT_NOT_EXPR:
24132 {
24133 tree o50 = TREE_OPERAND (o40, 0);
24134 {
24135/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24136 tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
24137 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24138 if (res) return res;
24139 }
24140 break;
24141 }
24142 default:;
24143 }
24144 break;
24145 }
24146 case BIT_NOT_EXPR:
24147 {
24148 tree o40 = TREE_OPERAND (op1, 0);
24149 {
24150/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24151 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
24152 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24153 if (res) return res;
24154 }
24155 break;
24156 }
24157 default:;
24158 }
24159 break;
24160 }
24161 case BIT_IOR_EXPR:
24162 {
24163 tree o20 = TREE_OPERAND (op0, 0);
24164 tree o21 = TREE_OPERAND (op0, 1);
24165 switch (TREE_CODE (op1))
24166 {
24167 case BIT_NOT_EXPR:
24168 {
24169 tree o50 = TREE_OPERAND (op1, 0);
24170 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
24171 {
24172 {
24173/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24174 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
24175 tree res = generic_simplify_211 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24176 if (res) return res;
24177 }
24178 }
24179 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
24180 {
24181 {
24182/* #line 674 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24183 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
24184 tree res = generic_simplify_211 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24185 if (res) return res;
24186 }
24187 }
24188 switch (TREE_CODE (o50))
24189 {
24190 case BIT_AND_EXPR:
24191 {
24192 tree o60 = TREE_OPERAND (o50, 0);
24193 tree o61 = TREE_OPERAND (o50, 1);
24194 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
24195 {
24196 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
24197 {
24198 {
24199/* #line 726 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24200 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
24201 tree res = generic_simplify_74 (loc, type, op0, op1, captures);
24202 if (res) return res;
24203 }
24204 }
24205 }
24206 break;
24207 }
24208 default:;
24209 }
24210 break;
24211 }
24212 case BIT_XOR_EXPR:
24213 {
24214 tree o50 = TREE_OPERAND (op1, 0);
24215 tree o51 = TREE_OPERAND (op1, 1);
24216 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
24217 {
24218 switch (TREE_CODE (o51))
24219 {
24220 case BIT_NOT_EXPR:
24221 {
24222 tree o70 = TREE_OPERAND (o51, 0);
24223 if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
24224 {
24225 {
24226/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24227 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
24228 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24229 if (res) return res;
24230 }
24231 }
24232 break;
24233 }
24234 default:;
24235 }
24236 }
24237 switch (TREE_CODE (o50))
24238 {
24239 case BIT_NOT_EXPR:
24240 {
24241 tree o60 = TREE_OPERAND (o50, 0);
24242 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
24243 {
24244 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
24245 {
24246 {
24247/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24248 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
24249 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24250 if (res) return res;
24251 }
24252 }
24253 }
24254 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
24255 {
24256 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
24257 {
24258 {
24259/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24260 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
24261 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24262 if (res) return res;
24263 }
24264 }
24265 }
24266 break;
24267 }
24268 default:;
24269 }
24270 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
24271 {
24272 switch (TREE_CODE (o51))
24273 {
24274 case BIT_NOT_EXPR:
24275 {
24276 tree o70 = TREE_OPERAND (o51, 0);
24277 if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
24278 {
24279 {
24280/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24281 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
24282 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24283 if (res) return res;
24284 }
24285 }
24286 break;
24287 }
24288 default:;
24289 }
24290 }
24291 break;
24292 }
24293 default:;
24294 }
24295 break;
24296 }
24297 case BIT_XOR_EXPR:
24298 {
24299 tree o20 = TREE_OPERAND (op0, 0);
24300 tree o21 = TREE_OPERAND (op0, 1);
24301 switch (TREE_CODE (o21))
24302 {
24303 case BIT_NOT_EXPR:
24304 {
24305 tree o40 = TREE_OPERAND (o21, 0);
24306 switch (TREE_CODE (op1))
24307 {
24308 case BIT_IOR_EXPR:
24309 {
24310 tree o60 = TREE_OPERAND (op1, 0);
24311 tree o61 = TREE_OPERAND (op1, 1);
24312 if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
24313 {
24314 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
24315 {
24316 {
24317/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24318 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
24319 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24320 if (res) return res;
24321 }
24322 }
24323 }
24324 break;
24325 }
24326 default:;
24327 }
24328 break;
24329 }
24330 default:;
24331 }
24332 switch (TREE_CODE (o20))
24333 {
24334 case BIT_NOT_EXPR:
24335 {
24336 tree o30 = TREE_OPERAND (o20, 0);
24337 switch (TREE_CODE (op1))
24338 {
24339 case BIT_IOR_EXPR:
24340 {
24341 tree o60 = TREE_OPERAND (op1, 0);
24342 tree o61 = TREE_OPERAND (op1, 1);
24343 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
24344 {
24345 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
24346 {
24347 {
24348/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24349 tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
24350 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24351 if (res) return res;
24352 }
24353 }
24354 }
24355 break;
24356 }
24357 default:;
24358 }
24359 break;
24360 }
24361 default:;
24362 }
24363 switch (TREE_CODE (o21))
24364 {
24365 case BIT_NOT_EXPR:
24366 {
24367 tree o40 = TREE_OPERAND (o21, 0);
24368 switch (TREE_CODE (op1))
24369 {
24370 case BIT_IOR_EXPR:
24371 {
24372 tree o60 = TREE_OPERAND (op1, 0);
24373 tree o61 = TREE_OPERAND (op1, 1);
24374 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
24375 {
24376 if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
24377 {
24378 {
24379/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24380 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
24381 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24382 if (res) return res;
24383 }
24384 }
24385 }
24386 break;
24387 }
24388 default:;
24389 }
24390 break;
24391 }
24392 default:;
24393 }
24394 switch (TREE_CODE (o20))
24395 {
24396 case BIT_NOT_EXPR:
24397 {
24398 tree o30 = TREE_OPERAND (o20, 0);
24399 switch (TREE_CODE (op1))
24400 {
24401 case BIT_IOR_EXPR:
24402 {
24403 tree o60 = TREE_OPERAND (op1, 0);
24404 tree o61 = TREE_OPERAND (op1, 1);
24405 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
24406 {
24407 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
24408 {
24409 {
24410/* #line 731 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24411 tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
24412 tree res = generic_simplify_75 (loc, type, op0, op1, captures);
24413 if (res) return res;
24414 }
24415 }
24416 }
24417 break;
24418 }
24419 default:;
24420 }
24421 break;
24422 }
24423 default:;
24424 }
24425 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
24426 {
24427 {
24428/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24429 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
24430 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
24431 if (res) return res;
24432 }
24433 }
24434 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
24435 {
24436 {
24437/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24438 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
24439 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
24440 if (res) return res;
24441 }
24442 }
24443 break;
24444 }
24445 CASE_CONVERT:
24446 {
24447 tree o20 = TREE_OPERAND (op0, 0);
24448 switch (TREE_CODE (o20))
24449 {
24450 case BIT_NOT_EXPR:
24451 {
24452 tree o30 = TREE_OPERAND (o20, 0);
24453 switch (TREE_CODE (op1))
24454 {
24455 CASE_CONVERT:
24456 {
24457 tree o50 = TREE_OPERAND (op1, 0);
24458 switch (TREE_CODE (o50))
24459 {
24460 case BIT_NOT_EXPR:
24461 {
24462 tree o60 = TREE_OPERAND (o50, 0);
24463 {
24464/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24465 tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
24466 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24467 if (res) return res;
24468 }
24469 break;
24470 }
24471 default:;
24472 }
24473 break;
24474 }
24475 case BIT_NOT_EXPR:
24476 {
24477 tree o50 = TREE_OPERAND (op1, 0);
24478 {
24479/* #line 739 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24480 tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
24481 tree res = generic_simplify_16 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24482 if (res) return res;
24483 }
24484 break;
24485 }
24486 default:;
24487 }
24488 break;
24489 }
24490 default:;
24491 }
24492 break;
24493 }
24494 default:;
24495 }
24496 switch (TREE_CODE (op1))
24497 {
24498 case BIT_XOR_EXPR:
24499 {
24500 tree o30 = TREE_OPERAND (op1, 0);
24501 tree o31 = TREE_OPERAND (op1, 1);
24502 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
24503 {
24504 {
24505/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24506 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
24507 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
24508 if (res) return res;
24509 }
24510 }
24511 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
24512 {
24513 {
24514/* #line 780 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24515 tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
24516 tree res = generic_simplify_89 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
24517 if (res) return res;
24518 }
24519 }
24520 break;
24521 }
24522 default:;
24523 }
24524 switch (TREE_CODE (op0))
24525 {
24526 CASE_CONVERT:
24527 {
24528 tree o20 = TREE_OPERAND (op0, 0);
24529 switch (TREE_CODE (o20))
24530 {
24531 case BIT_IOR_EXPR:
24532 {
24533 tree o30 = TREE_OPERAND (o20, 0);
24534 tree o31 = TREE_OPERAND (o20, 1);
24535 switch (TREE_CODE (op1))
24536 {
24537 CASE_CONVERT:
24538 {
24539 tree o60 = TREE_OPERAND (op1, 0);
24540 switch (TREE_CODE (o60))
24541 {
24542 case BIT_IOR_EXPR:
24543 {
24544 tree o70 = TREE_OPERAND (o60, 0);
24545 tree o71 = TREE_OPERAND (o60, 1);
24546 if (o70 == o30 || operand_equal_p (o70, o30, 0))
24547 {
24548 {
24549/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24550 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
24551 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24552 if (res) return res;
24553 }
24554 }
24555 if (o71 == o30 || operand_equal_p (o71, o30, 0))
24556 {
24557 {
24558/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24559 tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
24560 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24561 if (res) return res;
24562 }
24563 }
24564 if (o70 == o31 || operand_equal_p (o70, o31, 0))
24565 {
24566 {
24567/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24568 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
24569 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24570 if (res) return res;
24571 }
24572 }
24573 if (o71 == o31 || operand_equal_p (o71, o31, 0))
24574 {
24575 {
24576/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24577 tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
24578 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24579 if (res) return res;
24580 }
24581 }
24582 break;
24583 }
24584 default:;
24585 }
24586 break;
24587 }
24588 default:;
24589 }
24590 break;
24591 }
24592 case BIT_AND_EXPR:
24593 {
24594 tree o30 = TREE_OPERAND (o20, 0);
24595 tree o31 = TREE_OPERAND (o20, 1);
24596 switch (TREE_CODE (op1))
24597 {
24598 CASE_CONVERT:
24599 {
24600 tree o60 = TREE_OPERAND (op1, 0);
24601 if (o60 == o31 || operand_equal_p (o60, o31, 0))
24602 {
24603 {
24604/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24605 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
24606 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24607 if (res) return res;
24608 }
24609 }
24610 if (o60 == o30 || operand_equal_p (o60, o30, 0))
24611 {
24612 {
24613/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24614 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
24615 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24616 if (res) return res;
24617 }
24618 }
24619 break;
24620 }
24621 default:;
24622 }
24623 break;
24624 }
24625 default:;
24626 }
24627 switch (TREE_CODE (op1))
24628 {
24629 CASE_CONVERT:
24630 {
24631 tree o40 = TREE_OPERAND (op1, 0);
24632 switch (TREE_CODE (o40))
24633 {
24634 case BIT_AND_EXPR:
24635 {
24636 tree o50 = TREE_OPERAND (o40, 0);
24637 tree o51 = TREE_OPERAND (o40, 1);
24638 if (o51 == o20 || operand_equal_p (o51, o20, 0))
24639 {
24640 {
24641/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24642 tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
24643 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24644 if (res) return res;
24645 }
24646 }
24647 if (o50 == o20 || operand_equal_p (o50, o20, 0))
24648 {
24649 {
24650/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24651 tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
24652 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24653 if (res) return res;
24654 }
24655 }
24656 break;
24657 }
24658 default:;
24659 }
24660 break;
24661 }
24662 default:;
24663 }
24664 switch (TREE_CODE (o20))
24665 {
24666 case BIT_AND_EXPR:
24667 {
24668 tree o30 = TREE_OPERAND (o20, 0);
24669 tree o31 = TREE_OPERAND (o20, 1);
24670 if (op1 == o31 || operand_equal_p (op1, o31, 0))
24671 {
24672 {
24673/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24674 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
24675 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24676 if (res) return res;
24677 }
24678 }
24679 if (op1 == o30 || operand_equal_p (op1, o30, 0))
24680 {
24681 {
24682/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24683 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
24684 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24685 if (res) return res;
24686 }
24687 }
24688 break;
24689 }
24690 default:;
24691 }
24692 break;
24693 }
24694 case BIT_IOR_EXPR:
24695 {
24696 tree o20 = TREE_OPERAND (op0, 0);
24697 tree o21 = TREE_OPERAND (op0, 1);
24698 switch (TREE_CODE (op1))
24699 {
24700 case BIT_IOR_EXPR:
24701 {
24702 tree o50 = TREE_OPERAND (op1, 0);
24703 tree o51 = TREE_OPERAND (op1, 1);
24704 if (o50 == o20 || operand_equal_p (o50, o20, 0))
24705 {
24706 {
24707/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24708 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
24709 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24710 if (res) return res;
24711 }
24712 }
24713 if (o51 == o20 || operand_equal_p (o51, o20, 0))
24714 {
24715 {
24716/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24717 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
24718 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24719 if (res) return res;
24720 }
24721 }
24722 if (o50 == o21 || operand_equal_p (o50, o21, 0))
24723 {
24724 {
24725/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24726 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
24727 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24728 if (res) return res;
24729 }
24730 }
24731 if (o51 == o21 || operand_equal_p (o51, o21, 0))
24732 {
24733 {
24734/* #line 792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24735 tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
24736 tree res = generic_simplify_100 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
24737 if (res) return res;
24738 }
24739 }
24740 break;
24741 }
24742 default:;
24743 }
24744 break;
24745 }
24746 default:;
24747 }
24748 switch (TREE_CODE (op1))
24749 {
24750 CASE_CONVERT:
24751 {
24752 tree o30 = TREE_OPERAND (op1, 0);
24753 switch (TREE_CODE (o30))
24754 {
24755 case BIT_AND_EXPR:
24756 {
24757 tree o40 = TREE_OPERAND (o30, 0);
24758 tree o41 = TREE_OPERAND (o30, 1);
24759 if (o41 == op0 || operand_equal_p (o41, op0, 0))
24760 {
24761 {
24762/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24763 tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
24764 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24765 if (res) return res;
24766 }
24767 }
24768 if (o40 == op0 || operand_equal_p (o40, op0, 0))
24769 {
24770 {
24771/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24772 tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
24773 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24774 if (res) return res;
24775 }
24776 }
24777 break;
24778 }
24779 default:;
24780 }
24781 break;
24782 }
24783 default:;
24784 }
24785 switch (TREE_CODE (op0))
24786 {
24787 case BIT_AND_EXPR:
24788 {
24789 tree o20 = TREE_OPERAND (op0, 0);
24790 tree o21 = TREE_OPERAND (op0, 1);
24791 switch (TREE_CODE (op1))
24792 {
24793 CASE_CONVERT:
24794 {
24795 tree o50 = TREE_OPERAND (op1, 0);
24796 if (o50 == o21 || operand_equal_p (o50, o21, 0))
24797 {
24798 {
24799/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24800 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
24801 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24802 if (res) return res;
24803 }
24804 }
24805 if (o50 == o20 || operand_equal_p (o50, o20, 0))
24806 {
24807 {
24808/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24809 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
24810 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24811 if (res) return res;
24812 }
24813 }
24814 break;
24815 }
24816 default:;
24817 }
24818 if (op1 == o21 || operand_equal_p (op1, o21, 0))
24819 {
24820 {
24821/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24822 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
24823 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24824 if (res) return res;
24825 }
24826 }
24827 if (op1 == o20 || operand_equal_p (op1, o20, 0))
24828 {
24829 {
24830/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24831 tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
24832 tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24833 if (res) return res;
24834 }
24835 }
24836 break;
24837 }
24838 CASE_CONVERT:
24839 {
24840 tree o20 = TREE_OPERAND (op0, 0);
24841 switch (TREE_CODE (op1))
24842 {
24843 case BIT_AND_EXPR:
24844 {
24845 tree o40 = TREE_OPERAND (op1, 0);
24846 tree o41 = TREE_OPERAND (op1, 1);
24847 if (o41 == o20 || operand_equal_p (o41, o20, 0))
24848 {
24849 {
24850/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24851 tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
24852 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24853 if (res) return res;
24854 }
24855 }
24856 if (o40 == o20 || operand_equal_p (o40, o20, 0))
24857 {
24858 {
24859/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24860 tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
24861 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24862 if (res) return res;
24863 }
24864 }
24865 break;
24866 }
24867 default:;
24868 }
24869 break;
24870 }
24871 default:;
24872 }
24873 switch (TREE_CODE (op1))
24874 {
24875 case BIT_AND_EXPR:
24876 {
24877 tree o30 = TREE_OPERAND (op1, 0);
24878 tree o31 = TREE_OPERAND (op1, 1);
24879 if (o31 == op0 || operand_equal_p (o31, op0, 0))
24880 {
24881 {
24882/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24883 tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
24884 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24885 if (res) return res;
24886 }
24887 }
24888 if (o30 == op0 || operand_equal_p (o30, op0, 0))
24889 {
24890 {
24891/* #line 802 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24892 tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
24893 tree res = generic_simplify_29 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24894 if (res) return res;
24895 }
24896 }
24897 break;
24898 }
24899 default:;
24900 }
24901 switch (TREE_CODE (op0))
24902 {
24903 CASE_CONVERT:
24904 {
24905 tree o20 = TREE_OPERAND (op0, 0);
24906 switch (TREE_CODE (o20))
24907 {
24908 case BIT_AND_EXPR:
24909 {
24910 tree o30 = TREE_OPERAND (o20, 0);
24911 tree o31 = TREE_OPERAND (o20, 1);
24912 switch (TREE_CODE (op1))
24913 {
24914 CASE_CONVERT:
24915 {
24916 tree o60 = TREE_OPERAND (op1, 0);
24917 switch (TREE_CODE (o60))
24918 {
24919 case BIT_AND_EXPR:
24920 {
24921 tree o70 = TREE_OPERAND (o60, 0);
24922 tree o71 = TREE_OPERAND (o60, 1);
24923 if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
24924 {
24925 {
24926/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24927 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
24928 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24929 if (res) return res;
24930 }
24931 }
24932 if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
24933 {
24934 {
24935/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24936 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
24937 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24938 if (res) return res;
24939 }
24940 }
24941 if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
24942 {
24943 {
24944/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24945 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
24946 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24947 if (res) return res;
24948 }
24949 }
24950 if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
24951 {
24952 {
24953/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24954 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
24955 tree res = generic_simplify_194 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24956 if (res) return res;
24957 }
24958 }
24959 if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
24960 {
24961 {
24962/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24963 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o71, op0, o20, o31 };
24964 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24965 if (res) return res;
24966 }
24967 }
24968 if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
24969 {
24970 {
24971/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24972 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o71, op0, o20, o30 };
24973 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24974 if (res) return res;
24975 }
24976 }
24977 if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
24978 {
24979 {
24980/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24981 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o70, op0, o20, o31 };
24982 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24983 if (res) return res;
24984 }
24985 }
24986 if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
24987 {
24988 {
24989/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
24990 tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o70, op0, o20, o30 };
24991 tree res = generic_simplify_78 (loc, type, op0, op1, captures, BIT_AND_EXPR);
24992 if (res) return res;
24993 }
24994 }
24995 break;
24996 }
24997 default:;
24998 }
24999 break;
25000 }
25001 case BIT_AND_EXPR:
25002 {
25003 tree o60 = TREE_OPERAND (op1, 0);
25004 tree o61 = TREE_OPERAND (op1, 1);
25005 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
25006 {
25007 {
25008/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25009 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
25010 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25011 if (res) return res;
25012 }
25013 }
25014 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
25015 {
25016 {
25017/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25018 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
25019 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25020 if (res) return res;
25021 }
25022 }
25023 if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
25024 {
25025 {
25026/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25027 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
25028 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25029 if (res) return res;
25030 }
25031 }
25032 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
25033 {
25034 {
25035/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25036 tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
25037 tree res = generic_simplify_186 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25038 if (res) return res;
25039 }
25040 }
25041 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
25042 {
25043 {
25044/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25045 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o61, op0, o20, o31 };
25046 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25047 if (res) return res;
25048 }
25049 }
25050 if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
25051 {
25052 {
25053/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25054 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o61, op0, o20, o30 };
25055 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25056 if (res) return res;
25057 }
25058 }
25059 if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
25060 {
25061 {
25062/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25063 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o60, op0, o20, o31 };
25064 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25065 if (res) return res;
25066 }
25067 }
25068 if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
25069 {
25070 {
25071/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25072 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o60, op0, o20, o30 };
25073 tree res = generic_simplify_161 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25074 if (res) return res;
25075 }
25076 }
25077 break;
25078 }
25079 default:;
25080 }
25081 break;
25082 }
25083 default:;
25084 }
25085 switch (TREE_CODE (op1))
25086 {
25087 CASE_CONVERT:
25088 {
25089 tree o40 = TREE_OPERAND (op1, 0);
25090 {
25091/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25092 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
25093 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25094 if (res) return res;
25095 }
25096 break;
25097 }
25098 default:;
25099 }
25100 {
25101/* #line 885 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25102 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
25103 tree res = generic_simplify_55 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25104 if (res) return res;
25105 }
25106 break;
25107 }
25108 case BIT_AND_EXPR:
25109 {
25110 tree o20 = TREE_OPERAND (op0, 0);
25111 tree o21 = TREE_OPERAND (op0, 1);
25112 switch (TREE_CODE (op1))
25113 {
25114 CASE_CONVERT:
25115 {
25116 tree o50 = TREE_OPERAND (op1, 0);
25117 switch (TREE_CODE (o50))
25118 {
25119 case BIT_AND_EXPR:
25120 {
25121 tree o60 = TREE_OPERAND (o50, 0);
25122 tree o61 = TREE_OPERAND (o50, 1);
25123 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
25124 {
25125 {
25126/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25127 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o61, op0, op0, o21 };
25128 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25129 if (res) return res;
25130 }
25131 }
25132 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
25133 {
25134 {
25135/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25136 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o61, op0, op0, o20 };
25137 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25138 if (res) return res;
25139 }
25140 }
25141 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
25142 {
25143 {
25144/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25145 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o60, op0, op0, o21 };
25146 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25147 if (res) return res;
25148 }
25149 }
25150 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
25151 {
25152 {
25153/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25154 tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o60, op0, op0, o20 };
25155 tree res = generic_simplify_12 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25156 if (res) return res;
25157 }
25158 }
25159 if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
25160 {
25161 {
25162/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25163 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
25164 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25165 if (res) return res;
25166 }
25167 }
25168 if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
25169 {
25170 {
25171/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25172 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
25173 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25174 if (res) return res;
25175 }
25176 }
25177 if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
25178 {
25179 {
25180/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25181 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
25182 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25183 if (res) return res;
25184 }
25185 }
25186 if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
25187 {
25188 {
25189/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25190 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
25191 tree res = generic_simplify_142 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25192 if (res) return res;
25193 }
25194 }
25195 break;
25196 }
25197 default:;
25198 }
25199 break;
25200 }
25201 case BIT_AND_EXPR:
25202 {
25203 tree o50 = TREE_OPERAND (op1, 0);
25204 tree o51 = TREE_OPERAND (op1, 1);
25205 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25206 {
25207 {
25208/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25209 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
25210 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25211 if (res) return res;
25212 }
25213 }
25214 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
25215 {
25216 {
25217/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25218 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
25219 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25220 if (res) return res;
25221 }
25222 }
25223 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
25224 {
25225 {
25226/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25227 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
25228 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25229 if (res) return res;
25230 }
25231 }
25232 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25233 {
25234 {
25235/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25236 tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
25237 tree res = generic_simplify_26 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25238 if (res) return res;
25239 }
25240 }
25241 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25242 {
25243 {
25244/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25245 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o51, op0, op0, o21 };
25246 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25247 if (res) return res;
25248 }
25249 }
25250 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
25251 {
25252 {
25253/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25254 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o51, op0, op0, o20 };
25255 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25256 if (res) return res;
25257 }
25258 }
25259 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
25260 {
25261 {
25262/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25263 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o50, op0, op0, o21 };
25264 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25265 if (res) return res;
25266 }
25267 }
25268 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25269 {
25270 {
25271/* #line 812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25272 tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o50, op0, op0, o20 };
25273 tree res = generic_simplify_97 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25274 if (res) return res;
25275 }
25276 }
25277 break;
25278 }
25279 default:;
25280 }
25281 break;
25282 }
25283 case BIT_IOR_EXPR:
25284 {
25285 tree o20 = TREE_OPERAND (op0, 0);
25286 tree o21 = TREE_OPERAND (op0, 1);
25287 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
25288 {
25289 {
25290/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25291 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
25292 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25293 if (res) return res;
25294 }
25295 }
25296 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
25297 {
25298 {
25299/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25300 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
25301 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25302 if (res) return res;
25303 }
25304 }
25305 break;
25306 }
25307 default:;
25308 }
25309 switch (TREE_CODE (op1))
25310 {
25311 case BIT_IOR_EXPR:
25312 {
25313 tree o30 = TREE_OPERAND (op1, 0);
25314 tree o31 = TREE_OPERAND (op1, 1);
25315 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
25316 {
25317 {
25318/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25319 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
25320 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25321 if (res) return res;
25322 }
25323 }
25324 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
25325 {
25326 {
25327/* #line 912 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25328 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
25329 tree res = generic_simplify_210 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25330 if (res) return res;
25331 }
25332 }
25333 break;
25334 }
25335 default:;
25336 }
25337 switch (TREE_CODE (op0))
25338 {
25339 case BIT_IOR_EXPR:
25340 {
25341 tree o20 = TREE_OPERAND (op0, 0);
25342 tree o21 = TREE_OPERAND (op0, 1);
25343 switch (TREE_CODE (o20))
25344 {
25345 case BIT_NOT_EXPR:
25346 {
25347 tree o30 = TREE_OPERAND (o20, 0);
25348 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
25349 {
25350 {
25351/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25352 tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
25353 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25354 if (res) return res;
25355 }
25356 }
25357 break;
25358 }
25359 default:;
25360 }
25361 switch (TREE_CODE (o21))
25362 {
25363 case BIT_NOT_EXPR:
25364 {
25365 tree o40 = TREE_OPERAND (o21, 0);
25366 if (op1 == o40 || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
25367 {
25368 {
25369/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25370 tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
25371 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25372 if (res) return res;
25373 }
25374 }
25375 break;
25376 }
25377 default:;
25378 }
25379 break;
25380 }
25381 default:;
25382 }
25383 switch (TREE_CODE (op1))
25384 {
25385 case BIT_IOR_EXPR:
25386 {
25387 tree o30 = TREE_OPERAND (op1, 0);
25388 tree o31 = TREE_OPERAND (op1, 1);
25389 switch (TREE_CODE (o30))
25390 {
25391 case BIT_NOT_EXPR:
25392 {
25393 tree o40 = TREE_OPERAND (o30, 0);
25394 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
25395 {
25396 {
25397/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25398 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
25399 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25400 if (res) return res;
25401 }
25402 }
25403 break;
25404 }
25405 default:;
25406 }
25407 switch (TREE_CODE (o31))
25408 {
25409 case BIT_NOT_EXPR:
25410 {
25411 tree o50 = TREE_OPERAND (o31, 0);
25412 if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
25413 {
25414 {
25415/* #line 917 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25416 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
25417 tree res = generic_simplify_117 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
25418 if (res) return res;
25419 }
25420 }
25421 break;
25422 }
25423 default:;
25424 }
25425 break;
25426 }
25427 default:;
25428 }
25429 switch (TREE_CODE (op0))
25430 {
25431 case BIT_IOR_EXPR:
25432 {
25433 tree o20 = TREE_OPERAND (op0, 0);
25434 tree o21 = TREE_OPERAND (op0, 1);
25435 if (CONSTANT_CLASS_P (o21))
25436 {
25437 if (CONSTANT_CLASS_P (op1))
25438 {
25439 {
25440/* #line 922 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25441 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
25442 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:922, %s:%d\n", __FILE__, __LINE__);
25443 if (! tree_invariant_p (captures[2])) return NULL_TREE;
25444 tree res_op0;
25445 {
25446 tree ops1[2], res;
25447 ops1[0] = captures[0];
25448 ops1[1] = unshare_expr (captures[2]);
25449 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
25450 res_op0 = res;
25451 }
25452 tree res_op1;
25453 {
25454 tree ops1[2], res;
25455 ops1[0] = captures[1];
25456 ops1[1] = captures[2];
25457 res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
25458 res_op1 = res;
25459 }
25460 tree res;
25461 res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
25462 return res;
25463 }
25464 }
25465 }
25466 break;
25467 }
25468 case BIT_AND_EXPR:
25469 {
25470 tree o20 = TREE_OPERAND (op0, 0);
25471 tree o21 = TREE_OPERAND (op0, 1);
25472 if (CONSTANT_CLASS_P (o21))
25473 {
25474 if (CONSTANT_CLASS_P (op1))
25475 {
25476 {
25477/* #line 928 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25478 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
25479 tree res = generic_simplify_119 (loc, type, op0, op1, captures, BIT_AND_EXPR);
25480 if (res) return res;
25481 }
25482 }
25483 }
25484 break;
25485 }
25486 default:;
25487 }
25488 tree op1_pops[1];
25489 if (tree_logical_inverted_value (op1, op1_pops))
25490 {
25491 tree o30 = op1_pops[0];
25492 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
25493 {
25494 {
25495/* #line 955 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25496 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
25497 tree res = generic_simplify_154 (loc, type, op0, op1, captures);
25498 if (res) return res;
25499 }
25500 }
25501}
25502 switch (TREE_CODE (op0))
25503 {
25504 CASE_CONVERT:
25505 {
25506 tree o20 = TREE_OPERAND (op0, 0);
25507 switch (TREE_CODE (op1))
25508 {
25509 case INTEGER_CST:
25510 {
25511 {
25512/* #line 1134 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25513 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
25514 tree res = generic_simplify_196 (loc, type, op0, op1, captures);
25515 if (res) return res;
25516 }
25517 break;
25518 }
25519 default:;
25520 }
25521 break;
25522 }
25523 default:;
25524 }
25525tree op0_pops[1];
25526if (tree_logical_inverted_value (op0, op0_pops))
25527 {
25528 tree o20 = op0_pops[0];
25529 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
25530 {
25531 {
25532/* #line 955 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25533 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
25534 tree res = generic_simplify_154 (loc, type, op0, op1, captures);
25535 if (res) return res;
25536 }
25537 }
25538}
25539 switch (TREE_CODE (op1))
25540 {
25541 case INTEGER_CST:
25542 {
25543 {
25544/* #line 1134 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25545 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
25546 tree res = generic_simplify_196 (loc, type, op0, op1, captures);
25547 if (res) return res;
25548 }
25549 break;
25550 }
25551 default:;
25552 }
25553 switch (TREE_CODE (op0))
25554 {
25555 CASE_CONVERT:
25556 {
25557 tree o20 = TREE_OPERAND (op0, 0);
25558 switch (TREE_CODE (o20))
25559 {
25560 case LSHIFT_EXPR:
25561 {
25562 tree o30 = TREE_OPERAND (o20, 0);
25563 tree o31 = TREE_OPERAND (o20, 1);
25564 switch (TREE_CODE (o30))
25565 {
25566 CASE_CONVERT:
25567 {
25568 tree o40 = TREE_OPERAND (o30, 0);
25569 switch (TREE_CODE (o31))
25570 {
25571 case INTEGER_CST:
25572 {
25573 switch (TREE_CODE (op1))
25574 {
25575 case INTEGER_CST:
25576 {
25577 {
25578/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25579 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
25580 tree res = generic_simplify_225 (loc, type, op0, op1, captures, LSHIFT_EXPR);
25581 if (res) return res;
25582 }
25583 break;
25584 }
25585 default:;
25586 }
25587 break;
25588 }
25589 default:;
25590 }
25591 break;
25592 }
25593 default:;
25594 }
25595 switch (TREE_CODE (o31))
25596 {
25597 case INTEGER_CST:
25598 {
25599 switch (TREE_CODE (op1))
25600 {
25601 case INTEGER_CST:
25602 {
25603 {
25604/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25605 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
25606 tree res = generic_simplify_28 (loc, type, op0, op1, captures, LSHIFT_EXPR);
25607 if (res) return res;
25608 }
25609 break;
25610 }
25611 default:;
25612 }
25613 break;
25614 }
25615 default:;
25616 }
25617 break;
25618 }
25619 case RSHIFT_EXPR:
25620 {
25621 tree o30 = TREE_OPERAND (o20, 0);
25622 tree o31 = TREE_OPERAND (o20, 1);
25623 switch (TREE_CODE (o30))
25624 {
25625 CASE_CONVERT:
25626 {
25627 tree o40 = TREE_OPERAND (o30, 0);
25628 switch (TREE_CODE (o31))
25629 {
25630 case INTEGER_CST:
25631 {
25632 switch (TREE_CODE (op1))
25633 {
25634 case INTEGER_CST:
25635 {
25636 {
25637/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25638 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
25639 tree res = generic_simplify_225 (loc, type, op0, op1, captures, RSHIFT_EXPR);
25640 if (res) return res;
25641 }
25642 break;
25643 }
25644 default:;
25645 }
25646 break;
25647 }
25648 default:;
25649 }
25650 break;
25651 }
25652 default:;
25653 }
25654 switch (TREE_CODE (o31))
25655 {
25656 case INTEGER_CST:
25657 {
25658 switch (TREE_CODE (op1))
25659 {
25660 case INTEGER_CST:
25661 {
25662 {
25663/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25664 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
25665 tree res = generic_simplify_28 (loc, type, op0, op1, captures, RSHIFT_EXPR);
25666 if (res) return res;
25667 }
25668 break;
25669 }
25670 default:;
25671 }
25672 break;
25673 }
25674 default:;
25675 }
25676 break;
25677 }
25678 default:;
25679 }
25680 break;
25681 }
25682 case LSHIFT_EXPR:
25683 {
25684 tree o20 = TREE_OPERAND (op0, 0);
25685 tree o21 = TREE_OPERAND (op0, 1);
25686 switch (TREE_CODE (o20))
25687 {
25688 CASE_CONVERT:
25689 {
25690 tree o30 = TREE_OPERAND (o20, 0);
25691 switch (TREE_CODE (o21))
25692 {
25693 case INTEGER_CST:
25694 {
25695 switch (TREE_CODE (op1))
25696 {
25697 case INTEGER_CST:
25698 {
25699 {
25700/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25701 tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
25702 tree res = generic_simplify_108 (loc, type, op0, op1, captures, LSHIFT_EXPR);
25703 if (res) return res;
25704 }
25705 break;
25706 }
25707 default:;
25708 }
25709 break;
25710 }
25711 default:;
25712 }
25713 break;
25714 }
25715 default:;
25716 }
25717 switch (TREE_CODE (o21))
25718 {
25719 case INTEGER_CST:
25720 {
25721 switch (TREE_CODE (op1))
25722 {
25723 case INTEGER_CST:
25724 {
25725 {
25726/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25727 tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
25728 tree res = generic_simplify_137 (loc, type, op0, op1, captures, LSHIFT_EXPR);
25729 if (res) return res;
25730 }
25731 break;
25732 }
25733 default:;
25734 }
25735 break;
25736 }
25737 default:;
25738 }
25739 break;
25740 }
25741 case RSHIFT_EXPR:
25742 {
25743 tree o20 = TREE_OPERAND (op0, 0);
25744 tree o21 = TREE_OPERAND (op0, 1);
25745 switch (TREE_CODE (o20))
25746 {
25747 CASE_CONVERT:
25748 {
25749 tree o30 = TREE_OPERAND (o20, 0);
25750 switch (TREE_CODE (o21))
25751 {
25752 case INTEGER_CST:
25753 {
25754 switch (TREE_CODE (op1))
25755 {
25756 case INTEGER_CST:
25757 {
25758 {
25759/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25760 tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
25761 tree res = generic_simplify_108 (loc, type, op0, op1, captures, RSHIFT_EXPR);
25762 if (res) return res;
25763 }
25764 break;
25765 }
25766 default:;
25767 }
25768 break;
25769 }
25770 default:;
25771 }
25772 break;
25773 }
25774 default:;
25775 }
25776 switch (TREE_CODE (o21))
25777 {
25778 case INTEGER_CST:
25779 {
25780 switch (TREE_CODE (op1))
25781 {
25782 case INTEGER_CST:
25783 {
25784 {
25785/* #line 1605 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25786 tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
25787 tree res = generic_simplify_137 (loc, type, op0, op1, captures, RSHIFT_EXPR);
25788 if (res) return res;
25789 }
25790 break;
25791 }
25792 default:;
25793 }
25794 break;
25795 }
25796 default:;
25797 }
25798 break;
25799 }
25800 case ORDERED_EXPR:
25801 {
25802 tree o20 = TREE_OPERAND (op0, 0);
25803 tree o21 = TREE_OPERAND (op0, 1);
25804 if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
25805 {
25806 switch (TREE_CODE (op1))
25807 {
25808 case ORDERED_EXPR:
25809 {
25810 tree o50 = TREE_OPERAND (op1, 0);
25811 tree o51 = TREE_OPERAND (op1, 1);
25812 if (o51 == o50 || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
25813 {
25814 {
25815/* #line 2621 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25816 tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
25817/* #line 2621 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25818 if (types_match (captures[0], captures[1]))
25819 {
25820 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2622, %s:%d\n", __FILE__, __LINE__);
25821 tree res_op0;
25822 res_op0 = captures[0];
25823 tree res_op1;
25824 res_op1 = captures[1];
25825 tree res;
25826 res = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
25827 return res;
25828 }
25829 }
25830 }
25831 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25832 {
25833 {
25834/* #line 2628 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25835 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
25836 tree res = generic_simplify_162 (loc, type, op0, op1, captures);
25837 if (res) return res;
25838 }
25839 }
25840 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
25841 {
25842 {
25843/* #line 2628 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25844 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
25845 tree res = generic_simplify_162 (loc, type, op0, op1, captures);
25846 if (res) return res;
25847 }
25848 }
25849 break;
25850 }
25851 default:;
25852 }
25853 }
25854 switch (TREE_CODE (op1))
25855 {
25856 case ORDERED_EXPR:
25857 {
25858 tree o50 = TREE_OPERAND (op1, 0);
25859 tree o51 = TREE_OPERAND (op1, 1);
25860 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25861 {
25862 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
25863 {
25864 {
25865/* #line 2628 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25866 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
25867 tree res = generic_simplify_122 (loc, type, op0, op1, captures);
25868 if (res) return res;
25869 }
25870 }
25871 }
25872 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
25873 {
25874 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25875 {
25876 {
25877/* #line 2628 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25878 tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
25879 tree res = generic_simplify_122 (loc, type, op0, op1, captures);
25880 if (res) return res;
25881 }
25882 }
25883 }
25884 break;
25885 }
25886 default:;
25887 }
25888 break;
25889 }
25890 case LT_EXPR:
25891 {
25892 tree o20 = TREE_OPERAND (op0, 0);
25893 tree o21 = TREE_OPERAND (op0, 1);
25894 switch (TREE_CODE (op1))
25895 {
25896 case GE_EXPR:
25897 {
25898 tree o50 = TREE_OPERAND (op1, 0);
25899 tree o51 = TREE_OPERAND (op1, 1);
25900 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25901 {
25902 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25903 {
25904 {
25905/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25906 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
25907 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
25908 if (res) return res;
25909 }
25910 }
25911 }
25912 break;
25913 }
25914 case GT_EXPR:
25915 {
25916 tree o50 = TREE_OPERAND (op1, 0);
25917 tree o51 = TREE_OPERAND (op1, 1);
25918 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25919 {
25920 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25921 {
25922 {
25923/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25924 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
25925 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
25926 if (res) return res;
25927 }
25928 }
25929 }
25930 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
25931 {
25932 {
25933/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25934 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
25935 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LT_EXPR, MIN_EXPR);
25936 if (res) return res;
25937 }
25938 }
25939 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
25940 {
25941 {
25942/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25943 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
25944 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GT_EXPR, MAX_EXPR);
25945 if (res) return res;
25946 }
25947 }
25948 break;
25949 }
25950 case EQ_EXPR:
25951 {
25952 tree o50 = TREE_OPERAND (op1, 0);
25953 tree o51 = TREE_OPERAND (op1, 1);
25954 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25955 {
25956 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25957 {
25958 {
25959/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25960 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
25961 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, EQ_EXPR);
25962 if (res) return res;
25963 }
25964 }
25965 }
25966 break;
25967 }
25968 case LT_EXPR:
25969 {
25970 tree o50 = TREE_OPERAND (op1, 0);
25971 tree o51 = TREE_OPERAND (op1, 1);
25972 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
25973 {
25974 {
25975/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25976 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
25977 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LT_EXPR, MIN_EXPR);
25978 if (res) return res;
25979 }
25980 }
25981 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
25982 {
25983 {
25984/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
25985 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
25986 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GT_EXPR, MAX_EXPR);
25987 if (res) return res;
25988 }
25989 }
25990 break;
25991 }
25992 default:;
25993 }
25994 break;
25995 }
25996 case LE_EXPR:
25997 {
25998 tree o20 = TREE_OPERAND (op0, 0);
25999 tree o21 = TREE_OPERAND (op0, 1);
26000 switch (TREE_CODE (op1))
26001 {
26002 case GT_EXPR:
26003 {
26004 tree o50 = TREE_OPERAND (op1, 0);
26005 tree o51 = TREE_OPERAND (op1, 1);
26006 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26007 {
26008 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26009 {
26010 {
26011/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26012 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26013 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
26014 if (res) return res;
26015 }
26016 }
26017 }
26018 break;
26019 }
26020 case LE_EXPR:
26021 {
26022 tree o50 = TREE_OPERAND (op1, 0);
26023 tree o51 = TREE_OPERAND (op1, 1);
26024 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26025 {
26026 {
26027/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26028 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
26029 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LE_EXPR, MIN_EXPR);
26030 if (res) return res;
26031 }
26032 }
26033 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26034 {
26035 {
26036/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26037 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
26038 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GE_EXPR, MAX_EXPR);
26039 if (res) return res;
26040 }
26041 }
26042 break;
26043 }
26044 case GE_EXPR:
26045 {
26046 tree o50 = TREE_OPERAND (op1, 0);
26047 tree o51 = TREE_OPERAND (op1, 1);
26048 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
26049 {
26050 {
26051/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26052 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
26053 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LE_EXPR, MIN_EXPR);
26054 if (res) return res;
26055 }
26056 }
26057 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
26058 {
26059 {
26060/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26061 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
26062 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GE_EXPR, MAX_EXPR);
26063 if (res) return res;
26064 }
26065 }
26066 break;
26067 }
26068 default:;
26069 }
26070 break;
26071 }
26072 case NE_EXPR:
26073 {
26074 tree o20 = TREE_OPERAND (op0, 0);
26075 tree o21 = TREE_OPERAND (op0, 1);
26076 switch (TREE_CODE (op1))
26077 {
26078 case EQ_EXPR:
26079 {
26080 tree o50 = TREE_OPERAND (op1, 0);
26081 tree o51 = TREE_OPERAND (op1, 1);
26082 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26083 {
26084 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26085 {
26086 {
26087/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26088 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26089 tree res = generic_simplify_163 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
26090 if (res) return res;
26091 }
26092 }
26093 }
26094 break;
26095 }
26096 default:;
26097 }
26098 break;
26099 }
26100 case EQ_EXPR:
26101 {
26102 tree o20 = TREE_OPERAND (op0, 0);
26103 tree o21 = TREE_OPERAND (op0, 1);
26104 switch (TREE_CODE (op1))
26105 {
26106 case GT_EXPR:
26107 {
26108 tree o50 = TREE_OPERAND (op1, 0);
26109 tree o51 = TREE_OPERAND (op1, 1);
26110 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26111 {
26112 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26113 {
26114 {
26115/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26116 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26117 tree res = generic_simplify_163 (loc, type, op0, op1, captures, EQ_EXPR, GT_EXPR);
26118 if (res) return res;
26119 }
26120 }
26121 }
26122 break;
26123 }
26124 case LT_EXPR:
26125 {
26126 tree o50 = TREE_OPERAND (op1, 0);
26127 tree o51 = TREE_OPERAND (op1, 1);
26128 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26129 {
26130 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26131 {
26132 {
26133/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26134 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26135 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, EQ_EXPR);
26136 if (res) return res;
26137 }
26138 }
26139 }
26140 break;
26141 }
26142 case NE_EXPR:
26143 {
26144 tree o50 = TREE_OPERAND (op1, 0);
26145 tree o51 = TREE_OPERAND (op1, 1);
26146 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26147 {
26148 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26149 {
26150 {
26151/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26152 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26153 tree res = generic_simplify_163 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
26154 if (res) return res;
26155 }
26156 }
26157 }
26158 break;
26159 }
26160 default:;
26161 }
26162 break;
26163 }
26164 case GE_EXPR:
26165 {
26166 tree o20 = TREE_OPERAND (op0, 0);
26167 tree o21 = TREE_OPERAND (op0, 1);
26168 switch (TREE_CODE (op1))
26169 {
26170 case LT_EXPR:
26171 {
26172 tree o50 = TREE_OPERAND (op1, 0);
26173 tree o51 = TREE_OPERAND (op1, 1);
26174 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26175 {
26176 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26177 {
26178 {
26179/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26180 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26181 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
26182 if (res) return res;
26183 }
26184 }
26185 }
26186 break;
26187 }
26188 case GE_EXPR:
26189 {
26190 tree o50 = TREE_OPERAND (op1, 0);
26191 tree o51 = TREE_OPERAND (op1, 1);
26192 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26193 {
26194 {
26195/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26196 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
26197 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GE_EXPR, MAX_EXPR);
26198 if (res) return res;
26199 }
26200 }
26201 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26202 {
26203 {
26204/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26205 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
26206 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LE_EXPR, MIN_EXPR);
26207 if (res) return res;
26208 }
26209 }
26210 break;
26211 }
26212 case LE_EXPR:
26213 {
26214 tree o50 = TREE_OPERAND (op1, 0);
26215 tree o51 = TREE_OPERAND (op1, 1);
26216 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
26217 {
26218 {
26219/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26220 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
26221 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GE_EXPR, MAX_EXPR);
26222 if (res) return res;
26223 }
26224 }
26225 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
26226 {
26227 {
26228/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26229 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
26230 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LE_EXPR, MIN_EXPR);
26231 if (res) return res;
26232 }
26233 }
26234 break;
26235 }
26236 default:;
26237 }
26238 break;
26239 }
26240 case GT_EXPR:
26241 {
26242 tree o20 = TREE_OPERAND (op0, 0);
26243 tree o21 = TREE_OPERAND (op0, 1);
26244 switch (TREE_CODE (op1))
26245 {
26246 case LT_EXPR:
26247 {
26248 tree o50 = TREE_OPERAND (op1, 0);
26249 tree o51 = TREE_OPERAND (op1, 1);
26250 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26251 {
26252 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26253 {
26254 {
26255/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26256 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26257 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
26258 if (res) return res;
26259 }
26260 }
26261 }
26262 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
26263 {
26264 {
26265/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26266 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
26267 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GT_EXPR, MAX_EXPR);
26268 if (res) return res;
26269 }
26270 }
26271 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
26272 {
26273 {
26274/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26275 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
26276 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LT_EXPR, MIN_EXPR);
26277 if (res) return res;
26278 }
26279 }
26280 break;
26281 }
26282 case LE_EXPR:
26283 {
26284 tree o50 = TREE_OPERAND (op1, 0);
26285 tree o51 = TREE_OPERAND (op1, 1);
26286 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26287 {
26288 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26289 {
26290 {
26291/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26292 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26293 tree res = generic_simplify_163 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
26294 if (res) return res;
26295 }
26296 }
26297 }
26298 break;
26299 }
26300 case EQ_EXPR:
26301 {
26302 tree o50 = TREE_OPERAND (op1, 0);
26303 tree o51 = TREE_OPERAND (op1, 1);
26304 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26305 {
26306 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26307 {
26308 {
26309/* #line 2644 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26310 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26311 tree res = generic_simplify_163 (loc, type, op0, op1, captures, EQ_EXPR, GT_EXPR);
26312 if (res) return res;
26313 }
26314 }
26315 }
26316 break;
26317 }
26318 case GT_EXPR:
26319 {
26320 tree o50 = TREE_OPERAND (op1, 0);
26321 tree o51 = TREE_OPERAND (op1, 1);
26322 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26323 {
26324 {
26325/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26326 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
26327 tree res = generic_simplify_216 (loc, type, op0, op1, captures, GT_EXPR, MAX_EXPR);
26328 if (res) return res;
26329 }
26330 }
26331 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26332 {
26333 {
26334/* #line 3684 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26335 tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
26336 tree res = generic_simplify_216 (loc, type, op0, op1, captures, LT_EXPR, MIN_EXPR);
26337 if (res) return res;
26338 }
26339 }
26340 break;
26341 }
26342 default:;
26343 }
26344 break;
26345 }
26346 case MINUS_EXPR:
26347 {
26348 tree o20 = TREE_OPERAND (op0, 0);
26349 tree o21 = TREE_OPERAND (op0, 1);
26350 switch (TREE_CODE (o20))
26351 {
26352 CASE_CONVERT:
26353 {
26354 tree o30 = TREE_OPERAND (o20, 0);
26355 switch (TREE_CODE (o21))
26356 {
26357 CASE_CONVERT:
26358 {
26359 tree o50 = TREE_OPERAND (o21, 0);
26360 switch (TREE_CODE (op1))
26361 {
26362 case INTEGER_CST:
26363 {
26364 {
26365/* #line 3651 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26366 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
26367 tree res = generic_simplify_198 (loc, type, op0, op1, captures, MINUS_EXPR);
26368 if (res) return res;
26369 }
26370 break;
26371 }
26372 default:;
26373 }
26374 break;
26375 }
26376 default:;
26377 }
26378 break;
26379 }
26380 default:;
26381 }
26382 break;
26383 }
26384 case PLUS_EXPR:
26385 {
26386 tree o20 = TREE_OPERAND (op0, 0);
26387 tree o21 = TREE_OPERAND (op0, 1);
26388 switch (TREE_CODE (o20))
26389 {
26390 CASE_CONVERT:
26391 {
26392 tree o30 = TREE_OPERAND (o20, 0);
26393 switch (TREE_CODE (o21))
26394 {
26395 CASE_CONVERT:
26396 {
26397 tree o50 = TREE_OPERAND (o21, 0);
26398 switch (TREE_CODE (op1))
26399 {
26400 case INTEGER_CST:
26401 {
26402 {
26403/* #line 3651 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26404 tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
26405 tree res = generic_simplify_198 (loc, type, op0, op1, captures, PLUS_EXPR);
26406 if (res) return res;
26407 }
26408 break;
26409 }
26410 default:;
26411 }
26412 break;
26413 }
26414 default:;
26415 }
26416 break;
26417 }
26418 default:;
26419 }
26420 break;
26421 }
26422 default:;
26423 }
26424 return NULL_TREE;
26425}
26426
26427static tree
26428generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
26429{
26430 switch (TREE_CODE (op0))
26431 {
26432 case TRUNC_MOD_EXPR:
26433 {
26434 tree o20 = TREE_OPERAND (op0, 0);
26435 tree o21 = TREE_OPERAND (op0, 1);
26436 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
26437 {
26438 {
26439/* #line 595 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26440 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
26441 tree res = generic_simplify_7 (loc, type, op0, op1, captures, LT_EXPR);
26442 if (res) return res;
26443 }
26444 }
26445 break;
26446 }
26447 case MULT_EXPR:
26448 {
26449 tree o20 = TREE_OPERAND (op0, 0);
26450 tree o21 = TREE_OPERAND (op0, 1);
26451 switch (TREE_CODE (op1))
26452 {
26453 case MULT_EXPR:
26454 {
26455 tree o50 = TREE_OPERAND (op1, 0);
26456 tree o51 = TREE_OPERAND (op1, 1);
26457 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
26458 {
26459 {
26460/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26461 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
26462 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LT_EXPR);
26463 if (res) return res;
26464 }
26465 }
26466 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
26467 {
26468 {
26469/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26470 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
26471 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LT_EXPR);
26472 if (res) return res;
26473 }
26474 }
26475 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
26476 {
26477 {
26478/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26479 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
26480 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LT_EXPR);
26481 if (res) return res;
26482 }
26483 }
26484 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
26485 {
26486 {
26487/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26488 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
26489 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LT_EXPR);
26490 if (res) return res;
26491 }
26492 }
26493 break;
26494 }
26495 default:;
26496 }
26497 break;
26498 }
26499 case MIN_EXPR:
26500 {
26501 tree o20 = TREE_OPERAND (op0, 0);
26502 tree o21 = TREE_OPERAND (op0, 1);
26503 switch (TREE_CODE (o21))
26504 {
26505 case INTEGER_CST:
26506 {
26507 switch (TREE_CODE (op1))
26508 {
26509 case INTEGER_CST:
26510 {
26511 {
26512/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26513 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26514 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
26515 if (res) return res;
26516 }
26517 break;
26518 }
26519 default:;
26520 }
26521 break;
26522 }
26523 default:;
26524 }
26525 break;
26526 }
26527 case MAX_EXPR:
26528 {
26529 tree o20 = TREE_OPERAND (op0, 0);
26530 tree o21 = TREE_OPERAND (op0, 1);
26531 switch (TREE_CODE (o21))
26532 {
26533 case INTEGER_CST:
26534 {
26535 switch (TREE_CODE (op1))
26536 {
26537 case INTEGER_CST:
26538 {
26539 {
26540/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26541 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26542 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
26543 if (res) return res;
26544 }
26545 break;
26546 }
26547 default:;
26548 }
26549 break;
26550 }
26551 default:;
26552 }
26553 break;
26554 }
26555 default:;
26556 }
26557 switch (TREE_CODE (op1))
26558 {
26559 case INTEGER_CST:
26560 {
26561 {
26562/* #line 2267 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26563 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
26564 tree res = generic_simplify_224 (loc, type, op0, op1, captures, LT_EXPR, LE_EXPR);
26565 if (res) return res;
26566 }
26567 break;
26568 }
26569 default:;
26570 }
26571 switch (TREE_CODE (op0))
26572 {
26573 case MULT_EXPR:
26574 {
26575 tree o20 = TREE_OPERAND (op0, 0);
26576 tree o21 = TREE_OPERAND (op0, 1);
26577 switch (TREE_CODE (o21))
26578 {
26579 case INTEGER_CST:
26580 {
26581 if (integer_zerop (op1))
26582 {
26583 {
26584/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26585 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
26586 tree res = generic_simplify_172 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
26587 if (res) return res;
26588 }
26589 }
26590 break;
26591 }
26592 default:;
26593 }
26594 break;
26595 }
26596 default:;
26597 }
26598 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
26599 {
26600 {
26601/* #line 2349 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26602 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
26603 tree res = generic_simplify_32 (loc, type, op0, op1, captures, LT_EXPR);
26604 if (res) return res;
26605 }
26606 }
26607 switch (TREE_CODE (op0))
26608 {
26609 case BIT_NOT_EXPR:
26610 {
26611 tree o20 = TREE_OPERAND (op0, 0);
26612 switch (TREE_CODE (op1))
26613 {
26614 case BIT_NOT_EXPR:
26615 {
26616 tree o40 = TREE_OPERAND (op1, 0);
26617 {
26618/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26619 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
26620 tree res = generic_simplify_111 (loc, type, op0, op1, captures, LT_EXPR);
26621 if (res) return res;
26622 }
26623 break;
26624 }
26625 default:;
26626 }
26627 if (CONSTANT_CLASS_P (op1))
26628 {
26629 {
26630/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26631 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
26632 tree res = generic_simplify_218 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
26633 if (res) return res;
26634 }
26635 }
26636 break;
26637 }
26638 CASE_CONVERT:
26639 {
26640 tree o20 = TREE_OPERAND (op0, 0);
26641 switch (TREE_CODE (op1))
26642 {
26643 CASE_CONVERT:
26644 {
26645 tree o40 = TREE_OPERAND (op1, 0);
26646 {
26647/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26648 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
26649 tree res = generic_simplify_112 (loc, type, op0, op1, captures, LT_EXPR);
26650 if (res) return res;
26651 }
26652 break;
26653 }
26654 default:;
26655 }
26656 {
26657/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26658 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
26659 tree res = generic_simplify_112 (loc, type, op0, op1, captures, LT_EXPR);
26660 if (res) return res;
26661 }
26662 break;
26663 }
26664 default:;
26665 }
26666 switch (TREE_CODE (op1))
26667 {
26668 case REAL_CST:
26669 {
26670 {
26671/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26672 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
26673 tree res = generic_simplify_87 (loc, type, op0, op1, captures, LT_EXPR);
26674 if (res) return res;
26675 }
26676 break;
26677 }
26678 default:;
26679 }
26680 switch (TREE_CODE (op0))
26681 {
26682 case PLUS_EXPR:
26683 {
26684 tree o20 = TREE_OPERAND (op0, 0);
26685 tree o21 = TREE_OPERAND (op0, 1);
26686 switch (TREE_CODE (o21))
26687 {
26688 case REAL_CST:
26689 {
26690 switch (TREE_CODE (op1))
26691 {
26692 case REAL_CST:
26693 {
26694 {
26695/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26696 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26697 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, LT_EXPR);
26698 if (res) return res;
26699 }
26700 break;
26701 }
26702 default:;
26703 }
26704 break;
26705 }
26706 default:;
26707 }
26708 break;
26709 }
26710 case MINUS_EXPR:
26711 {
26712 tree o20 = TREE_OPERAND (op0, 0);
26713 tree o21 = TREE_OPERAND (op0, 1);
26714 switch (TREE_CODE (o21))
26715 {
26716 case REAL_CST:
26717 {
26718 switch (TREE_CODE (op1))
26719 {
26720 case REAL_CST:
26721 {
26722 {
26723/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26724 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26725 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, LT_EXPR);
26726 if (res) return res;
26727 }
26728 break;
26729 }
26730 default:;
26731 }
26732 break;
26733 }
26734 default:;
26735 }
26736 switch (TREE_CODE (o20))
26737 {
26738 case REAL_CST:
26739 {
26740 switch (TREE_CODE (op1))
26741 {
26742 case REAL_CST:
26743 {
26744 {
26745/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26746 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26747 tree res = generic_simplify_209 (loc, type, op0, op1, captures, LT_EXPR);
26748 if (res) return res;
26749 }
26750 break;
26751 }
26752 default:;
26753 }
26754 break;
26755 }
26756 default:;
26757 }
26758 break;
26759 }
26760 case EXACT_DIV_EXPR:
26761 {
26762 tree o20 = TREE_OPERAND (op0, 0);
26763 tree o21 = TREE_OPERAND (op0, 1);
26764 switch (TREE_CODE (o21))
26765 {
26766 case INTEGER_CST:
26767 {
26768 switch (TREE_CODE (op1))
26769 {
26770 case INTEGER_CST:
26771 {
26772 {
26773/* #line 2603 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26774 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
26775 tree res = generic_simplify_20 (loc, type, op0, op1, captures, LT_EXPR);
26776 if (res) return res;
26777 }
26778 break;
26779 }
26780 default:;
26781 }
26782 break;
26783 }
26784 default:;
26785 }
26786 break;
26787 }
26788 case NEGATE_EXPR:
26789 {
26790 tree o20 = TREE_OPERAND (op0, 0);
26791 switch (TREE_CODE (op1))
26792 {
26793 case NEGATE_EXPR:
26794 {
26795 tree o40 = TREE_OPERAND (op1, 0);
26796 {
26797/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26798 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
26799 tree res = generic_simplify_52 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
26800 if (res) return res;
26801 }
26802 break;
26803 }
26804 default:;
26805 }
26806 if (CONSTANT_CLASS_P (op1))
26807 {
26808 {
26809/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26810 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
26811 tree res = generic_simplify_145 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
26812 if (res) return res;
26813 }
26814 }
26815 break;
26816 }
26817 CASE_CONVERT:
26818 {
26819 tree o20 = TREE_OPERAND (op0, 0);
26820 switch (TREE_CODE (op1))
26821 {
26822 CASE_CONVERT:
26823 {
26824 tree o40 = TREE_OPERAND (op1, 0);
26825 {
26826/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26827 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
26828 tree res = generic_simplify_131 (loc, type, op0, op1, captures, LT_EXPR);
26829 if (res) return res;
26830 }
26831 break;
26832 }
26833 default:;
26834 }
26835 {
26836/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26837 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
26838 tree res = generic_simplify_167 (loc, type, op0, op1, captures, LT_EXPR);
26839 if (res) return res;
26840 }
26841 switch (TREE_CODE (o20))
26842 {
26843 case ADDR_EXPR:
26844 {
26845 switch (TREE_CODE (op1))
26846 {
26847 CASE_CONVERT:
26848 {
26849 tree o40 = TREE_OPERAND (op1, 0);
26850 switch (TREE_CODE (o40))
26851 {
26852 case ADDR_EXPR:
26853 {
26854 {
26855/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26856 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
26857 tree res = generic_simplify_155 (loc, type, op0, op1, captures, LT_EXPR);
26858 if (res) return res;
26859 }
26860 break;
26861 }
26862 default:;
26863 }
26864 break;
26865 }
26866 case ADDR_EXPR:
26867 {
26868 {
26869/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26870 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
26871 tree res = generic_simplify_155 (loc, type, op0, op1, captures, LT_EXPR);
26872 if (res) return res;
26873 }
26874 break;
26875 }
26876 default:;
26877 }
26878 break;
26879 }
26880 default:;
26881 }
26882 switch (TREE_CODE (op1))
26883 {
26884 case INTEGER_CST:
26885 {
26886 {
26887/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26888 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
26889 tree res = generic_simplify_140 (loc, type, op0, op1, captures, LT_EXPR);
26890 if (res) return res;
26891 }
26892 break;
26893 }
26894 default:;
26895 }
26896 break;
26897 }
26898 case ADDR_EXPR:
26899 {
26900 switch (TREE_CODE (op1))
26901 {
26902 CASE_CONVERT:
26903 {
26904 tree o30 = TREE_OPERAND (op1, 0);
26905 switch (TREE_CODE (o30))
26906 {
26907 case ADDR_EXPR:
26908 {
26909 {
26910/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26911 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
26912 tree res = generic_simplify_49 (loc, type, op0, op1, captures, LT_EXPR);
26913 if (res) return res;
26914 }
26915 break;
26916 }
26917 default:;
26918 }
26919 break;
26920 }
26921 case ADDR_EXPR:
26922 {
26923 {
26924/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26925 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
26926 tree res = generic_simplify_49 (loc, type, op0, op1, captures, LT_EXPR);
26927 if (res) return res;
26928 }
26929 break;
26930 }
26931 default:;
26932 }
26933 break;
26934 }
26935 case CALL_EXPR:
26936 switch (get_call_combined_fn (op0))
26937 {
26938 case CFN_BUILT_IN_SQRTF:
26939 {
26940 tree o20 = CALL_EXPR_ARG (op0, 0);
26941 switch (TREE_CODE (op1))
26942 {
26943 case REAL_CST:
26944 {
26945 {
26946/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26947 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
26948 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
26949 if (res) return res;
26950 }
26951 break;
26952 }
26953 default:;
26954 }
26955 break;
26956 }
26957 case CFN_BUILT_IN_SQRT:
26958 {
26959 tree o20 = CALL_EXPR_ARG (op0, 0);
26960 switch (TREE_CODE (op1))
26961 {
26962 case REAL_CST:
26963 {
26964 {
26965/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26966 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
26967 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
26968 if (res) return res;
26969 }
26970 break;
26971 }
26972 default:;
26973 }
26974 break;
26975 }
26976 case CFN_BUILT_IN_SQRTL:
26977 {
26978 tree o20 = CALL_EXPR_ARG (op0, 0);
26979 switch (TREE_CODE (op1))
26980 {
26981 case REAL_CST:
26982 {
26983 {
26984/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
26985 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
26986 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
26987 if (res) return res;
26988 }
26989 break;
26990 }
26991 default:;
26992 }
26993 break;
26994 }
26995 case CFN_SQRT:
26996 {
26997 tree o20 = CALL_EXPR_ARG (op0, 0);
26998 switch (TREE_CODE (op1))
26999 {
27000 case REAL_CST:
27001 {
27002 {
27003/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27004 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27005 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, LT_EXPR);
27006 if (res) return res;
27007 }
27008 break;
27009 }
27010 default:;
27011 }
27012 break;
27013 }
27014 default:;
27015 }
27016 break;
27017 default:;
27018 }
27019 switch (TREE_CODE (op1))
27020 {
27021 case INTEGER_CST:
27022 {
27023 {
27024/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27025 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
27026 tree res = generic_simplify_169 (loc, type, op0, op1, captures, LT_EXPR);
27027 if (res) return res;
27028 }
27029 break;
27030 }
27031 default:;
27032 }
27033 switch (TREE_CODE (op0))
27034 {
27035 case PLUS_EXPR:
27036 {
27037 tree o20 = TREE_OPERAND (op0, 0);
27038 tree o21 = TREE_OPERAND (op0, 1);
27039 switch (TREE_CODE (o21))
27040 {
27041 case INTEGER_CST:
27042 {
27043 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
27044 {
27045 {
27046/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27047 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
27048 tree res = generic_simplify_184 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
27049 if (res) return res;
27050 }
27051 }
27052 break;
27053 }
27054 default:;
27055 }
27056 break;
27057 }
27058 default:;
27059 }
27060 switch (TREE_CODE (op1))
27061 {
27062 case PLUS_EXPR:
27063 {
27064 tree o30 = TREE_OPERAND (op1, 0);
27065 tree o31 = TREE_OPERAND (op1, 1);
27066 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
27067 {
27068 switch (TREE_CODE (o31))
27069 {
27070 case INTEGER_CST:
27071 {
27072 {
27073/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27074 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
27075 tree res = generic_simplify_184 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR);
27076 if (res) return res;
27077 }
27078 break;
27079 }
27080 default:;
27081 }
27082 }
27083 break;
27084 }
27085 case MINUS_EXPR:
27086 {
27087 tree o30 = TREE_OPERAND (op1, 0);
27088 tree o31 = TREE_OPERAND (op1, 1);
27089 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
27090 {
27091 {
27092/* #line 3057 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27093 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
27094 tree res = generic_simplify_143 (loc, type, op0, op1, captures, GT_EXPR);
27095 if (res) return res;
27096 }
27097 }
27098 break;
27099 }
27100 case REALPART_EXPR:
27101 {
27102 tree o30 = TREE_OPERAND (op1, 0);
27103 switch (TREE_CODE (o30))
27104 {
27105 case CALL_EXPR:
27106 switch (get_call_combined_fn (o30))
27107 {
27108 case CFN_SUB_OVERFLOW:
27109 {
27110 tree o40 = CALL_EXPR_ARG (o30, 0);
27111 tree o41 = CALL_EXPR_ARG (o30, 1);
27112 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
27113 {
27114 {
27115/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27116 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
27117 tree res = generic_simplify_109 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR);
27118 if (res) return res;
27119 }
27120 }
27121 break;
27122 }
27123 default:;
27124 }
27125 break;
27126 default:;
27127 }
27128 break;
27129 }
27130 default:;
27131 }
27132 switch (TREE_CODE (op0))
27133 {
27134 case REALPART_EXPR:
27135 {
27136 tree o20 = TREE_OPERAND (op0, 0);
27137 switch (TREE_CODE (o20))
27138 {
27139 case CALL_EXPR:
27140 switch (get_call_combined_fn (o20))
27141 {
27142 case CFN_ADD_OVERFLOW:
27143 {
27144 tree o30 = CALL_EXPR_ARG (o20, 0);
27145 tree o31 = CALL_EXPR_ARG (o20, 1);
27146 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
27147 {
27148 {
27149/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27150 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
27151 tree res = generic_simplify_203 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
27152 if (res) return res;
27153 }
27154 }
27155 if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
27156 {
27157 {
27158/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27159 tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
27160 tree res = generic_simplify_203 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
27161 if (res) return res;
27162 }
27163 }
27164 break;
27165 }
27166 default:;
27167 }
27168 break;
27169 default:;
27170 }
27171 break;
27172 }
27173 case TRUNC_DIV_EXPR:
27174 {
27175 tree o20 = TREE_OPERAND (op0, 0);
27176 tree o21 = TREE_OPERAND (op0, 1);
27177 if (integer_all_onesp (o20))
27178 {
27179 {
27180/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27181 tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
27182 tree res = generic_simplify_132 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
27183 if (res) return res;
27184 }
27185 }
27186 break;
27187 }
27188 case PLUS_EXPR:
27189 {
27190 tree o20 = TREE_OPERAND (op0, 0);
27191 tree o21 = TREE_OPERAND (op0, 1);
27192 switch (TREE_CODE (o21))
27193 {
27194 case INTEGER_CST:
27195 {
27196 switch (TREE_CODE (op1))
27197 {
27198 case INTEGER_CST:
27199 {
27200 {
27201/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27202 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
27203 tree res = generic_simplify_48 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR);
27204 if (res) return res;
27205 }
27206 break;
27207 }
27208 default:;
27209 }
27210 break;
27211 }
27212 default:;
27213 }
27214 break;
27215 }
27216 case MINUS_EXPR:
27217 {
27218 tree o20 = TREE_OPERAND (op0, 0);
27219 tree o21 = TREE_OPERAND (op0, 1);
27220 switch (TREE_CODE (o21))
27221 {
27222 case INTEGER_CST:
27223 {
27224 switch (TREE_CODE (op1))
27225 {
27226 case INTEGER_CST:
27227 {
27228 {
27229/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27230 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
27231 tree res = generic_simplify_48 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR);
27232 if (res) return res;
27233 }
27234 break;
27235 }
27236 default:;
27237 }
27238 break;
27239 }
27240 default:;
27241 }
27242 break;
27243 }
27244 default:;
27245 }
27246 return NULL_TREE;
27247}
27248
27249static tree
27250generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
27251{
27252 switch (TREE_CODE (op0))
27253 {
27254 case TRUNC_MOD_EXPR:
27255 {
27256 tree o20 = TREE_OPERAND (op0, 0);
27257 tree o21 = TREE_OPERAND (op0, 1);
27258 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
27259 {
27260 {
27261/* #line 595 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27262 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
27263 tree res = generic_simplify_7 (loc, type, op0, op1, captures, GE_EXPR);
27264 if (res) return res;
27265 }
27266 }
27267 break;
27268 }
27269 case MULT_EXPR:
27270 {
27271 tree o20 = TREE_OPERAND (op0, 0);
27272 tree o21 = TREE_OPERAND (op0, 1);
27273 switch (TREE_CODE (op1))
27274 {
27275 case MULT_EXPR:
27276 {
27277 tree o50 = TREE_OPERAND (op1, 0);
27278 tree o51 = TREE_OPERAND (op1, 1);
27279 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
27280 {
27281 {
27282/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27283 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
27284 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GE_EXPR);
27285 if (res) return res;
27286 }
27287 }
27288 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
27289 {
27290 {
27291/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27292 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
27293 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GE_EXPR);
27294 if (res) return res;
27295 }
27296 }
27297 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
27298 {
27299 {
27300/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27301 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
27302 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GE_EXPR);
27303 if (res) return res;
27304 }
27305 }
27306 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
27307 {
27308 {
27309/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27310 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
27311 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GE_EXPR);
27312 if (res) return res;
27313 }
27314 }
27315 break;
27316 }
27317 default:;
27318 }
27319 break;
27320 }
27321 case MAX_EXPR:
27322 {
27323 tree o20 = TREE_OPERAND (op0, 0);
27324 tree o21 = TREE_OPERAND (op0, 1);
27325 switch (TREE_CODE (o21))
27326 {
27327 case INTEGER_CST:
27328 {
27329 switch (TREE_CODE (op1))
27330 {
27331 case INTEGER_CST:
27332 {
27333 {
27334/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27335 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27336 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
27337 if (res) return res;
27338 }
27339 break;
27340 }
27341 default:;
27342 }
27343 break;
27344 }
27345 default:;
27346 }
27347 break;
27348 }
27349 case MIN_EXPR:
27350 {
27351 tree o20 = TREE_OPERAND (op0, 0);
27352 tree o21 = TREE_OPERAND (op0, 1);
27353 switch (TREE_CODE (o21))
27354 {
27355 case INTEGER_CST:
27356 {
27357 switch (TREE_CODE (op1))
27358 {
27359 case INTEGER_CST:
27360 {
27361 {
27362/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27363 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27364 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
27365 if (res) return res;
27366 }
27367 break;
27368 }
27369 default:;
27370 }
27371 break;
27372 }
27373 default:;
27374 }
27375 break;
27376 }
27377 default:;
27378 }
27379 switch (TREE_CODE (op1))
27380 {
27381 case INTEGER_CST:
27382 {
27383 {
27384/* #line 2267 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27385 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
27386 tree res = generic_simplify_224 (loc, type, op0, op1, captures, GE_EXPR, GT_EXPR);
27387 if (res) return res;
27388 }
27389 break;
27390 }
27391 default:;
27392 }
27393 switch (TREE_CODE (op0))
27394 {
27395 case MULT_EXPR:
27396 {
27397 tree o20 = TREE_OPERAND (op0, 0);
27398 tree o21 = TREE_OPERAND (op0, 1);
27399 switch (TREE_CODE (o21))
27400 {
27401 case INTEGER_CST:
27402 {
27403 if (integer_zerop (op1))
27404 {
27405 {
27406/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27407 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
27408 tree res = generic_simplify_172 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
27409 if (res) return res;
27410 }
27411 }
27412 break;
27413 }
27414 default:;
27415 }
27416 break;
27417 }
27418 default:;
27419 }
27420 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
27421 {
27422 {
27423/* #line 2341 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27424 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
27425 tree res = generic_simplify_156 (loc, type, op0, op1, captures, GE_EXPR);
27426 if (res) return res;
27427 }
27428 }
27429 switch (TREE_CODE (op0))
27430 {
27431 case BIT_NOT_EXPR:
27432 {
27433 tree o20 = TREE_OPERAND (op0, 0);
27434 switch (TREE_CODE (op1))
27435 {
27436 case BIT_NOT_EXPR:
27437 {
27438 tree o40 = TREE_OPERAND (op1, 0);
27439 {
27440/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27441 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
27442 tree res = generic_simplify_111 (loc, type, op0, op1, captures, GE_EXPR);
27443 if (res) return res;
27444 }
27445 break;
27446 }
27447 default:;
27448 }
27449 if (CONSTANT_CLASS_P (op1))
27450 {
27451 {
27452/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27453 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
27454 tree res = generic_simplify_218 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
27455 if (res) return res;
27456 }
27457 }
27458 break;
27459 }
27460 CASE_CONVERT:
27461 {
27462 tree o20 = TREE_OPERAND (op0, 0);
27463 switch (TREE_CODE (op1))
27464 {
27465 CASE_CONVERT:
27466 {
27467 tree o40 = TREE_OPERAND (op1, 0);
27468 {
27469/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27470 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
27471 tree res = generic_simplify_112 (loc, type, op0, op1, captures, GE_EXPR);
27472 if (res) return res;
27473 }
27474 break;
27475 }
27476 default:;
27477 }
27478 {
27479/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27480 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
27481 tree res = generic_simplify_112 (loc, type, op0, op1, captures, GE_EXPR);
27482 if (res) return res;
27483 }
27484 break;
27485 }
27486 default:;
27487 }
27488 switch (TREE_CODE (op1))
27489 {
27490 case REAL_CST:
27491 {
27492 {
27493/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27494 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
27495 tree res = generic_simplify_87 (loc, type, op0, op1, captures, GE_EXPR);
27496 if (res) return res;
27497 }
27498 break;
27499 }
27500 default:;
27501 }
27502 switch (TREE_CODE (op0))
27503 {
27504 case PLUS_EXPR:
27505 {
27506 tree o20 = TREE_OPERAND (op0, 0);
27507 tree o21 = TREE_OPERAND (op0, 1);
27508 switch (TREE_CODE (o21))
27509 {
27510 case REAL_CST:
27511 {
27512 switch (TREE_CODE (op1))
27513 {
27514 case REAL_CST:
27515 {
27516 {
27517/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27518 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27519 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, GE_EXPR);
27520 if (res) return res;
27521 }
27522 break;
27523 }
27524 default:;
27525 }
27526 break;
27527 }
27528 default:;
27529 }
27530 break;
27531 }
27532 case MINUS_EXPR:
27533 {
27534 tree o20 = TREE_OPERAND (op0, 0);
27535 tree o21 = TREE_OPERAND (op0, 1);
27536 switch (TREE_CODE (o21))
27537 {
27538 case REAL_CST:
27539 {
27540 switch (TREE_CODE (op1))
27541 {
27542 case REAL_CST:
27543 {
27544 {
27545/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27546 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27547 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, GE_EXPR);
27548 if (res) return res;
27549 }
27550 break;
27551 }
27552 default:;
27553 }
27554 break;
27555 }
27556 default:;
27557 }
27558 switch (TREE_CODE (o20))
27559 {
27560 case REAL_CST:
27561 {
27562 switch (TREE_CODE (op1))
27563 {
27564 case REAL_CST:
27565 {
27566 {
27567/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27568 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27569 tree res = generic_simplify_209 (loc, type, op0, op1, captures, GE_EXPR);
27570 if (res) return res;
27571 }
27572 break;
27573 }
27574 default:;
27575 }
27576 break;
27577 }
27578 default:;
27579 }
27580 break;
27581 }
27582 case EXACT_DIV_EXPR:
27583 {
27584 tree o20 = TREE_OPERAND (op0, 0);
27585 tree o21 = TREE_OPERAND (op0, 1);
27586 switch (TREE_CODE (o21))
27587 {
27588 case INTEGER_CST:
27589 {
27590 switch (TREE_CODE (op1))
27591 {
27592 case INTEGER_CST:
27593 {
27594 {
27595/* #line 2603 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27596 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
27597 tree res = generic_simplify_20 (loc, type, op0, op1, captures, GE_EXPR);
27598 if (res) return res;
27599 }
27600 break;
27601 }
27602 default:;
27603 }
27604 break;
27605 }
27606 default:;
27607 }
27608 break;
27609 }
27610 case NEGATE_EXPR:
27611 {
27612 tree o20 = TREE_OPERAND (op0, 0);
27613 switch (TREE_CODE (op1))
27614 {
27615 case NEGATE_EXPR:
27616 {
27617 tree o40 = TREE_OPERAND (op1, 0);
27618 {
27619/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27620 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
27621 tree res = generic_simplify_52 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
27622 if (res) return res;
27623 }
27624 break;
27625 }
27626 default:;
27627 }
27628 if (CONSTANT_CLASS_P (op1))
27629 {
27630 {
27631/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27632 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27633 tree res = generic_simplify_145 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
27634 if (res) return res;
27635 }
27636 }
27637 break;
27638 }
27639 CASE_CONVERT:
27640 {
27641 tree o20 = TREE_OPERAND (op0, 0);
27642 switch (TREE_CODE (op1))
27643 {
27644 CASE_CONVERT:
27645 {
27646 tree o40 = TREE_OPERAND (op1, 0);
27647 {
27648/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27649 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
27650 tree res = generic_simplify_131 (loc, type, op0, op1, captures, GE_EXPR);
27651 if (res) return res;
27652 }
27653 break;
27654 }
27655 default:;
27656 }
27657 {
27658/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27659 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
27660 tree res = generic_simplify_167 (loc, type, op0, op1, captures, GE_EXPR);
27661 if (res) return res;
27662 }
27663 switch (TREE_CODE (o20))
27664 {
27665 case ADDR_EXPR:
27666 {
27667 switch (TREE_CODE (op1))
27668 {
27669 CASE_CONVERT:
27670 {
27671 tree o40 = TREE_OPERAND (op1, 0);
27672 switch (TREE_CODE (o40))
27673 {
27674 case ADDR_EXPR:
27675 {
27676 {
27677/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27678 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
27679 tree res = generic_simplify_155 (loc, type, op0, op1, captures, GE_EXPR);
27680 if (res) return res;
27681 }
27682 break;
27683 }
27684 default:;
27685 }
27686 break;
27687 }
27688 case ADDR_EXPR:
27689 {
27690 {
27691/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27692 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
27693 tree res = generic_simplify_155 (loc, type, op0, op1, captures, GE_EXPR);
27694 if (res) return res;
27695 }
27696 break;
27697 }
27698 default:;
27699 }
27700 break;
27701 }
27702 default:;
27703 }
27704 switch (TREE_CODE (op1))
27705 {
27706 case INTEGER_CST:
27707 {
27708 {
27709/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27710 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
27711 tree res = generic_simplify_140 (loc, type, op0, op1, captures, GE_EXPR);
27712 if (res) return res;
27713 }
27714 break;
27715 }
27716 default:;
27717 }
27718 break;
27719 }
27720 case ADDR_EXPR:
27721 {
27722 switch (TREE_CODE (op1))
27723 {
27724 CASE_CONVERT:
27725 {
27726 tree o30 = TREE_OPERAND (op1, 0);
27727 switch (TREE_CODE (o30))
27728 {
27729 case ADDR_EXPR:
27730 {
27731 {
27732/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27733 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
27734 tree res = generic_simplify_49 (loc, type, op0, op1, captures, GE_EXPR);
27735 if (res) return res;
27736 }
27737 break;
27738 }
27739 default:;
27740 }
27741 break;
27742 }
27743 case ADDR_EXPR:
27744 {
27745 {
27746/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27747 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
27748 tree res = generic_simplify_49 (loc, type, op0, op1, captures, GE_EXPR);
27749 if (res) return res;
27750 }
27751 break;
27752 }
27753 default:;
27754 }
27755 break;
27756 }
27757 case CALL_EXPR:
27758 switch (get_call_combined_fn (op0))
27759 {
27760 case CFN_BUILT_IN_SQRTF:
27761 {
27762 tree o20 = CALL_EXPR_ARG (op0, 0);
27763 switch (TREE_CODE (op1))
27764 {
27765 case REAL_CST:
27766 {
27767 {
27768/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27769 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27770 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
27771 if (res) return res;
27772 }
27773 break;
27774 }
27775 default:;
27776 }
27777 break;
27778 }
27779 case CFN_BUILT_IN_SQRT:
27780 {
27781 tree o20 = CALL_EXPR_ARG (op0, 0);
27782 switch (TREE_CODE (op1))
27783 {
27784 case REAL_CST:
27785 {
27786 {
27787/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27788 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27789 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
27790 if (res) return res;
27791 }
27792 break;
27793 }
27794 default:;
27795 }
27796 break;
27797 }
27798 case CFN_BUILT_IN_SQRTL:
27799 {
27800 tree o20 = CALL_EXPR_ARG (op0, 0);
27801 switch (TREE_CODE (op1))
27802 {
27803 case REAL_CST:
27804 {
27805 {
27806/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27807 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27808 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
27809 if (res) return res;
27810 }
27811 break;
27812 }
27813 default:;
27814 }
27815 break;
27816 }
27817 case CFN_SQRT:
27818 {
27819 tree o20 = CALL_EXPR_ARG (op0, 0);
27820 switch (TREE_CODE (op1))
27821 {
27822 case REAL_CST:
27823 {
27824 {
27825/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27826 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
27827 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, GE_EXPR);
27828 if (res) return res;
27829 }
27830 break;
27831 }
27832 default:;
27833 }
27834 break;
27835 }
27836 default:;
27837 }
27838 break;
27839 default:;
27840 }
27841 switch (TREE_CODE (op1))
27842 {
27843 case INTEGER_CST:
27844 {
27845 {
27846/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27847 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
27848 tree res = generic_simplify_169 (loc, type, op0, op1, captures, GE_EXPR);
27849 if (res) return res;
27850 }
27851 break;
27852 }
27853 default:;
27854 }
27855 switch (TREE_CODE (op0))
27856 {
27857 case PLUS_EXPR:
27858 {
27859 tree o20 = TREE_OPERAND (op0, 0);
27860 tree o21 = TREE_OPERAND (op0, 1);
27861 switch (TREE_CODE (o21))
27862 {
27863 case INTEGER_CST:
27864 {
27865 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
27866 {
27867 {
27868/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27869 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
27870 tree res = generic_simplify_184 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
27871 if (res) return res;
27872 }
27873 }
27874 break;
27875 }
27876 default:;
27877 }
27878 break;
27879 }
27880 default:;
27881 }
27882 switch (TREE_CODE (op1))
27883 {
27884 case PLUS_EXPR:
27885 {
27886 tree o30 = TREE_OPERAND (op1, 0);
27887 tree o31 = TREE_OPERAND (op1, 1);
27888 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
27889 {
27890 switch (TREE_CODE (o31))
27891 {
27892 case INTEGER_CST:
27893 {
27894 {
27895/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27896 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
27897 tree res = generic_simplify_184 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
27898 if (res) return res;
27899 }
27900 break;
27901 }
27902 default:;
27903 }
27904 }
27905 break;
27906 }
27907 case MINUS_EXPR:
27908 {
27909 tree o30 = TREE_OPERAND (op1, 0);
27910 tree o31 = TREE_OPERAND (op1, 1);
27911 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
27912 {
27913 {
27914/* #line 3057 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27915 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
27916 tree res = generic_simplify_143 (loc, type, op0, op1, captures, LE_EXPR);
27917 if (res) return res;
27918 }
27919 }
27920 break;
27921 }
27922 case REALPART_EXPR:
27923 {
27924 tree o30 = TREE_OPERAND (op1, 0);
27925 switch (TREE_CODE (o30))
27926 {
27927 case CALL_EXPR:
27928 switch (get_call_combined_fn (o30))
27929 {
27930 case CFN_SUB_OVERFLOW:
27931 {
27932 tree o40 = CALL_EXPR_ARG (o30, 0);
27933 tree o41 = CALL_EXPR_ARG (o30, 1);
27934 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
27935 {
27936 {
27937/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27938 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
27939 tree res = generic_simplify_109 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR);
27940 if (res) return res;
27941 }
27942 }
27943 break;
27944 }
27945 default:;
27946 }
27947 break;
27948 default:;
27949 }
27950 break;
27951 }
27952 default:;
27953 }
27954 switch (TREE_CODE (op0))
27955 {
27956 case REALPART_EXPR:
27957 {
27958 tree o20 = TREE_OPERAND (op0, 0);
27959 switch (TREE_CODE (o20))
27960 {
27961 case CALL_EXPR:
27962 switch (get_call_combined_fn (o20))
27963 {
27964 case CFN_ADD_OVERFLOW:
27965 {
27966 tree o30 = CALL_EXPR_ARG (o20, 0);
27967 tree o31 = CALL_EXPR_ARG (o20, 1);
27968 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
27969 {
27970 {
27971/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27972 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
27973 tree res = generic_simplify_203 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
27974 if (res) return res;
27975 }
27976 }
27977 if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
27978 {
27979 {
27980/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
27981 tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
27982 tree res = generic_simplify_203 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
27983 if (res) return res;
27984 }
27985 }
27986 break;
27987 }
27988 default:;
27989 }
27990 break;
27991 default:;
27992 }
27993 break;
27994 }
27995 case TRUNC_DIV_EXPR:
27996 {
27997 tree o20 = TREE_OPERAND (op0, 0);
27998 tree o21 = TREE_OPERAND (op0, 1);
27999 if (integer_all_onesp (o20))
28000 {
28001 {
28002/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28003 tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
28004 tree res = generic_simplify_132 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
28005 if (res) return res;
28006 }
28007 }
28008 break;
28009 }
28010 case PLUS_EXPR:
28011 {
28012 tree o20 = TREE_OPERAND (op0, 0);
28013 tree o21 = TREE_OPERAND (op0, 1);
28014 switch (TREE_CODE (o21))
28015 {
28016 case INTEGER_CST:
28017 {
28018 switch (TREE_CODE (op1))
28019 {
28020 case INTEGER_CST:
28021 {
28022 {
28023/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28024 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
28025 tree res = generic_simplify_48 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR);
28026 if (res) return res;
28027 }
28028 break;
28029 }
28030 default:;
28031 }
28032 break;
28033 }
28034 default:;
28035 }
28036 break;
28037 }
28038 case MINUS_EXPR:
28039 {
28040 tree o20 = TREE_OPERAND (op0, 0);
28041 tree o21 = TREE_OPERAND (op0, 1);
28042 switch (TREE_CODE (o21))
28043 {
28044 case INTEGER_CST:
28045 {
28046 switch (TREE_CODE (op1))
28047 {
28048 case INTEGER_CST:
28049 {
28050 {
28051/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28052 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
28053 tree res = generic_simplify_48 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR);
28054 if (res) return res;
28055 }
28056 break;
28057 }
28058 default:;
28059 }
28060 break;
28061 }
28062 default:;
28063 }
28064 break;
28065 }
28066 default:;
28067 }
28068 return NULL_TREE;
28069}
28070
28071static tree
28072generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
28073{
28074 switch (TREE_CODE (op1))
28075 {
28076 case TRUNC_MOD_EXPR:
28077 {
28078 tree o30 = TREE_OPERAND (op1, 0);
28079 tree o31 = TREE_OPERAND (op1, 1);
28080 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
28081 {
28082 {
28083/* #line 600 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28084 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
28085 tree res = generic_simplify_86 (loc, type, op0, op1, captures, GT_EXPR);
28086 if (res) return res;
28087 }
28088 }
28089 break;
28090 }
28091 default:;
28092 }
28093 switch (TREE_CODE (op0))
28094 {
28095 case MULT_EXPR:
28096 {
28097 tree o20 = TREE_OPERAND (op0, 0);
28098 tree o21 = TREE_OPERAND (op0, 1);
28099 switch (TREE_CODE (op1))
28100 {
28101 case MULT_EXPR:
28102 {
28103 tree o50 = TREE_OPERAND (op1, 0);
28104 tree o51 = TREE_OPERAND (op1, 1);
28105 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
28106 {
28107 {
28108/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28109 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
28110 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GT_EXPR);
28111 if (res) return res;
28112 }
28113 }
28114 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
28115 {
28116 {
28117/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28118 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
28119 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GT_EXPR);
28120 if (res) return res;
28121 }
28122 }
28123 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
28124 {
28125 {
28126/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28127 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
28128 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GT_EXPR);
28129 if (res) return res;
28130 }
28131 }
28132 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
28133 {
28134 {
28135/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28136 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
28137 tree res = generic_simplify_101 (loc, type, op0, op1, captures, GT_EXPR);
28138 if (res) return res;
28139 }
28140 }
28141 break;
28142 }
28143 default:;
28144 }
28145 break;
28146 }
28147 case MAX_EXPR:
28148 {
28149 tree o20 = TREE_OPERAND (op0, 0);
28150 tree o21 = TREE_OPERAND (op0, 1);
28151 switch (TREE_CODE (o21))
28152 {
28153 case INTEGER_CST:
28154 {
28155 switch (TREE_CODE (op1))
28156 {
28157 case INTEGER_CST:
28158 {
28159 {
28160/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28161 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28162 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
28163 if (res) return res;
28164 }
28165 break;
28166 }
28167 default:;
28168 }
28169 break;
28170 }
28171 default:;
28172 }
28173 break;
28174 }
28175 case MIN_EXPR:
28176 {
28177 tree o20 = TREE_OPERAND (op0, 0);
28178 tree o21 = TREE_OPERAND (op0, 1);
28179 switch (TREE_CODE (o21))
28180 {
28181 case INTEGER_CST:
28182 {
28183 switch (TREE_CODE (op1))
28184 {
28185 case INTEGER_CST:
28186 {
28187 {
28188/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28189 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28190 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
28191 if (res) return res;
28192 }
28193 break;
28194 }
28195 default:;
28196 }
28197 break;
28198 }
28199 default:;
28200 }
28201 break;
28202 }
28203 default:;
28204 }
28205 switch (TREE_CODE (op1))
28206 {
28207 case INTEGER_CST:
28208 {
28209 {
28210/* #line 2261 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28211 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
28212 tree res = generic_simplify_151 (loc, type, op0, op1, captures, GT_EXPR, GE_EXPR);
28213 if (res) return res;
28214 }
28215 break;
28216 }
28217 default:;
28218 }
28219 switch (TREE_CODE (op0))
28220 {
28221 case MULT_EXPR:
28222 {
28223 tree o20 = TREE_OPERAND (op0, 0);
28224 tree o21 = TREE_OPERAND (op0, 1);
28225 switch (TREE_CODE (o21))
28226 {
28227 case INTEGER_CST:
28228 {
28229 if (integer_zerop (op1))
28230 {
28231 {
28232/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28233 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
28234 tree res = generic_simplify_172 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
28235 if (res) return res;
28236 }
28237 }
28238 break;
28239 }
28240 default:;
28241 }
28242 break;
28243 }
28244 default:;
28245 }
28246 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
28247 {
28248 {
28249/* #line 2349 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28250 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
28251 tree res = generic_simplify_32 (loc, type, op0, op1, captures, GT_EXPR);
28252 if (res) return res;
28253 }
28254 }
28255 switch (TREE_CODE (op0))
28256 {
28257 case BIT_NOT_EXPR:
28258 {
28259 tree o20 = TREE_OPERAND (op0, 0);
28260 switch (TREE_CODE (op1))
28261 {
28262 case BIT_NOT_EXPR:
28263 {
28264 tree o40 = TREE_OPERAND (op1, 0);
28265 {
28266/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28267 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
28268 tree res = generic_simplify_111 (loc, type, op0, op1, captures, GT_EXPR);
28269 if (res) return res;
28270 }
28271 break;
28272 }
28273 default:;
28274 }
28275 if (CONSTANT_CLASS_P (op1))
28276 {
28277 {
28278/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28279 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
28280 tree res = generic_simplify_218 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
28281 if (res) return res;
28282 }
28283 }
28284 break;
28285 }
28286 CASE_CONVERT:
28287 {
28288 tree o20 = TREE_OPERAND (op0, 0);
28289 switch (TREE_CODE (op1))
28290 {
28291 CASE_CONVERT:
28292 {
28293 tree o40 = TREE_OPERAND (op1, 0);
28294 {
28295/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28296 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
28297 tree res = generic_simplify_112 (loc, type, op0, op1, captures, GT_EXPR);
28298 if (res) return res;
28299 }
28300 break;
28301 }
28302 default:;
28303 }
28304 {
28305/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28306 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
28307 tree res = generic_simplify_112 (loc, type, op0, op1, captures, GT_EXPR);
28308 if (res) return res;
28309 }
28310 break;
28311 }
28312 default:;
28313 }
28314 switch (TREE_CODE (op1))
28315 {
28316 case REAL_CST:
28317 {
28318 {
28319/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28320 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
28321 tree res = generic_simplify_87 (loc, type, op0, op1, captures, GT_EXPR);
28322 if (res) return res;
28323 }
28324 break;
28325 }
28326 default:;
28327 }
28328 switch (TREE_CODE (op0))
28329 {
28330 case PLUS_EXPR:
28331 {
28332 tree o20 = TREE_OPERAND (op0, 0);
28333 tree o21 = TREE_OPERAND (op0, 1);
28334 switch (TREE_CODE (o21))
28335 {
28336 case REAL_CST:
28337 {
28338 switch (TREE_CODE (op1))
28339 {
28340 case REAL_CST:
28341 {
28342 {
28343/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28344 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28345 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, GT_EXPR);
28346 if (res) return res;
28347 }
28348 break;
28349 }
28350 default:;
28351 }
28352 break;
28353 }
28354 default:;
28355 }
28356 break;
28357 }
28358 case MINUS_EXPR:
28359 {
28360 tree o20 = TREE_OPERAND (op0, 0);
28361 tree o21 = TREE_OPERAND (op0, 1);
28362 switch (TREE_CODE (o21))
28363 {
28364 case REAL_CST:
28365 {
28366 switch (TREE_CODE (op1))
28367 {
28368 case REAL_CST:
28369 {
28370 {
28371/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28372 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28373 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, GT_EXPR);
28374 if (res) return res;
28375 }
28376 break;
28377 }
28378 default:;
28379 }
28380 break;
28381 }
28382 default:;
28383 }
28384 switch (TREE_CODE (o20))
28385 {
28386 case REAL_CST:
28387 {
28388 switch (TREE_CODE (op1))
28389 {
28390 case REAL_CST:
28391 {
28392 {
28393/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28394 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28395 tree res = generic_simplify_209 (loc, type, op0, op1, captures, GT_EXPR);
28396 if (res) return res;
28397 }
28398 break;
28399 }
28400 default:;
28401 }
28402 break;
28403 }
28404 default:;
28405 }
28406 break;
28407 }
28408 case EXACT_DIV_EXPR:
28409 {
28410 tree o20 = TREE_OPERAND (op0, 0);
28411 tree o21 = TREE_OPERAND (op0, 1);
28412 switch (TREE_CODE (o21))
28413 {
28414 case INTEGER_CST:
28415 {
28416 switch (TREE_CODE (op1))
28417 {
28418 case INTEGER_CST:
28419 {
28420 {
28421/* #line 2603 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28422 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28423 tree res = generic_simplify_20 (loc, type, op0, op1, captures, GT_EXPR);
28424 if (res) return res;
28425 }
28426 break;
28427 }
28428 default:;
28429 }
28430 break;
28431 }
28432 default:;
28433 }
28434 break;
28435 }
28436 case NEGATE_EXPR:
28437 {
28438 tree o20 = TREE_OPERAND (op0, 0);
28439 switch (TREE_CODE (op1))
28440 {
28441 case NEGATE_EXPR:
28442 {
28443 tree o40 = TREE_OPERAND (op1, 0);
28444 {
28445/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28446 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
28447 tree res = generic_simplify_52 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
28448 if (res) return res;
28449 }
28450 break;
28451 }
28452 default:;
28453 }
28454 if (CONSTANT_CLASS_P (op1))
28455 {
28456 {
28457/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28458 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
28459 tree res = generic_simplify_145 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
28460 if (res) return res;
28461 }
28462 }
28463 break;
28464 }
28465 CASE_CONVERT:
28466 {
28467 tree o20 = TREE_OPERAND (op0, 0);
28468 switch (TREE_CODE (op1))
28469 {
28470 CASE_CONVERT:
28471 {
28472 tree o40 = TREE_OPERAND (op1, 0);
28473 {
28474/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28475 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
28476 tree res = generic_simplify_131 (loc, type, op0, op1, captures, GT_EXPR);
28477 if (res) return res;
28478 }
28479 break;
28480 }
28481 default:;
28482 }
28483 {
28484/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28485 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
28486 tree res = generic_simplify_167 (loc, type, op0, op1, captures, GT_EXPR);
28487 if (res) return res;
28488 }
28489 switch (TREE_CODE (o20))
28490 {
28491 case ADDR_EXPR:
28492 {
28493 switch (TREE_CODE (op1))
28494 {
28495 CASE_CONVERT:
28496 {
28497 tree o40 = TREE_OPERAND (op1, 0);
28498 switch (TREE_CODE (o40))
28499 {
28500 case ADDR_EXPR:
28501 {
28502 {
28503/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28504 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
28505 tree res = generic_simplify_155 (loc, type, op0, op1, captures, GT_EXPR);
28506 if (res) return res;
28507 }
28508 break;
28509 }
28510 default:;
28511 }
28512 break;
28513 }
28514 case ADDR_EXPR:
28515 {
28516 {
28517/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28518 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
28519 tree res = generic_simplify_155 (loc, type, op0, op1, captures, GT_EXPR);
28520 if (res) return res;
28521 }
28522 break;
28523 }
28524 default:;
28525 }
28526 break;
28527 }
28528 default:;
28529 }
28530 switch (TREE_CODE (op1))
28531 {
28532 case INTEGER_CST:
28533 {
28534 {
28535/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28536 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
28537 tree res = generic_simplify_140 (loc, type, op0, op1, captures, GT_EXPR);
28538 if (res) return res;
28539 }
28540 break;
28541 }
28542 default:;
28543 }
28544 break;
28545 }
28546 case ADDR_EXPR:
28547 {
28548 switch (TREE_CODE (op1))
28549 {
28550 CASE_CONVERT:
28551 {
28552 tree o30 = TREE_OPERAND (op1, 0);
28553 switch (TREE_CODE (o30))
28554 {
28555 case ADDR_EXPR:
28556 {
28557 {
28558/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28559 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
28560 tree res = generic_simplify_49 (loc, type, op0, op1, captures, GT_EXPR);
28561 if (res) return res;
28562 }
28563 break;
28564 }
28565 default:;
28566 }
28567 break;
28568 }
28569 case ADDR_EXPR:
28570 {
28571 {
28572/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28573 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
28574 tree res = generic_simplify_49 (loc, type, op0, op1, captures, GT_EXPR);
28575 if (res) return res;
28576 }
28577 break;
28578 }
28579 default:;
28580 }
28581 break;
28582 }
28583 case CALL_EXPR:
28584 switch (get_call_combined_fn (op0))
28585 {
28586 case CFN_BUILT_IN_SQRTF:
28587 {
28588 tree o20 = CALL_EXPR_ARG (op0, 0);
28589 switch (TREE_CODE (op1))
28590 {
28591 case REAL_CST:
28592 {
28593 {
28594/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28595 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
28596 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
28597 if (res) return res;
28598 }
28599 break;
28600 }
28601 default:;
28602 }
28603 break;
28604 }
28605 case CFN_BUILT_IN_SQRT:
28606 {
28607 tree o20 = CALL_EXPR_ARG (op0, 0);
28608 switch (TREE_CODE (op1))
28609 {
28610 case REAL_CST:
28611 {
28612 {
28613/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28614 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
28615 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
28616 if (res) return res;
28617 }
28618 break;
28619 }
28620 default:;
28621 }
28622 break;
28623 }
28624 case CFN_BUILT_IN_SQRTL:
28625 {
28626 tree o20 = CALL_EXPR_ARG (op0, 0);
28627 switch (TREE_CODE (op1))
28628 {
28629 case REAL_CST:
28630 {
28631 {
28632/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28633 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
28634 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
28635 if (res) return res;
28636 }
28637 break;
28638 }
28639 default:;
28640 }
28641 break;
28642 }
28643 case CFN_SQRT:
28644 {
28645 tree o20 = CALL_EXPR_ARG (op0, 0);
28646 switch (TREE_CODE (op1))
28647 {
28648 case REAL_CST:
28649 {
28650 {
28651/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28652 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
28653 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, GT_EXPR);
28654 if (res) return res;
28655 }
28656 break;
28657 }
28658 default:;
28659 }
28660 break;
28661 }
28662 default:;
28663 }
28664 break;
28665 default:;
28666 }
28667 switch (TREE_CODE (op1))
28668 {
28669 case INTEGER_CST:
28670 {
28671 {
28672/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28673 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
28674 tree res = generic_simplify_169 (loc, type, op0, op1, captures, GT_EXPR);
28675 if (res) return res;
28676 }
28677 break;
28678 }
28679 default:;
28680 }
28681 switch (TREE_CODE (op0))
28682 {
28683 case PLUS_EXPR:
28684 {
28685 tree o20 = TREE_OPERAND (op0, 0);
28686 tree o21 = TREE_OPERAND (op0, 1);
28687 switch (TREE_CODE (o21))
28688 {
28689 case INTEGER_CST:
28690 {
28691 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
28692 {
28693 {
28694/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28695 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
28696 tree res = generic_simplify_184 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR);
28697 if (res) return res;
28698 }
28699 }
28700 break;
28701 }
28702 default:;
28703 }
28704 break;
28705 }
28706 default:;
28707 }
28708 switch (TREE_CODE (op1))
28709 {
28710 case PLUS_EXPR:
28711 {
28712 tree o30 = TREE_OPERAND (op1, 0);
28713 tree o31 = TREE_OPERAND (op1, 1);
28714 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
28715 {
28716 switch (TREE_CODE (o31))
28717 {
28718 case INTEGER_CST:
28719 {
28720 {
28721/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28722 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
28723 tree res = generic_simplify_184 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
28724 if (res) return res;
28725 }
28726 break;
28727 }
28728 default:;
28729 }
28730 }
28731 break;
28732 }
28733 default:;
28734 }
28735 switch (TREE_CODE (op0))
28736 {
28737 case MINUS_EXPR:
28738 {
28739 tree o20 = TREE_OPERAND (op0, 0);
28740 tree o21 = TREE_OPERAND (op0, 1);
28741 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
28742 {
28743 {
28744/* #line 3057 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28745 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
28746 tree res = generic_simplify_143 (loc, type, op0, op1, captures, GT_EXPR);
28747 if (res) return res;
28748 }
28749 }
28750 break;
28751 }
28752 case REALPART_EXPR:
28753 {
28754 tree o20 = TREE_OPERAND (op0, 0);
28755 switch (TREE_CODE (o20))
28756 {
28757 case CALL_EXPR:
28758 switch (get_call_combined_fn (o20))
28759 {
28760 case CFN_SUB_OVERFLOW:
28761 {
28762 tree o30 = CALL_EXPR_ARG (o20, 0);
28763 tree o31 = CALL_EXPR_ARG (o20, 1);
28764 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
28765 {
28766 {
28767/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28768 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
28769 tree res = generic_simplify_202 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR);
28770 if (res) return res;
28771 }
28772 }
28773 break;
28774 }
28775 default:;
28776 }
28777 break;
28778 default:;
28779 }
28780 break;
28781 }
28782 default:;
28783 }
28784 switch (TREE_CODE (op1))
28785 {
28786 case REALPART_EXPR:
28787 {
28788 tree o30 = TREE_OPERAND (op1, 0);
28789 switch (TREE_CODE (o30))
28790 {
28791 case CALL_EXPR:
28792 switch (get_call_combined_fn (o30))
28793 {
28794 case CFN_ADD_OVERFLOW:
28795 {
28796 tree o40 = CALL_EXPR_ARG (o30, 0);
28797 tree o41 = CALL_EXPR_ARG (o30, 1);
28798 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
28799 {
28800 {
28801/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28802 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
28803 tree res = generic_simplify_191 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
28804 if (res) return res;
28805 }
28806 }
28807 if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
28808 {
28809 {
28810/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28811 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
28812 tree res = generic_simplify_191 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
28813 if (res) return res;
28814 }
28815 }
28816 break;
28817 }
28818 default:;
28819 }
28820 break;
28821 default:;
28822 }
28823 break;
28824 }
28825 case TRUNC_DIV_EXPR:
28826 {
28827 tree o30 = TREE_OPERAND (op1, 0);
28828 tree o31 = TREE_OPERAND (op1, 1);
28829 if (integer_all_onesp (o30))
28830 {
28831 {
28832/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28833 tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
28834 tree res = generic_simplify_51 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
28835 if (res) return res;
28836 }
28837 }
28838 break;
28839 }
28840 default:;
28841 }
28842 switch (TREE_CODE (op0))
28843 {
28844 case PLUS_EXPR:
28845 {
28846 tree o20 = TREE_OPERAND (op0, 0);
28847 tree o21 = TREE_OPERAND (op0, 1);
28848 switch (TREE_CODE (o21))
28849 {
28850 case INTEGER_CST:
28851 {
28852 switch (TREE_CODE (op1))
28853 {
28854 case INTEGER_CST:
28855 {
28856 {
28857/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28858 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
28859 tree res = generic_simplify_48 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR);
28860 if (res) return res;
28861 }
28862 break;
28863 }
28864 default:;
28865 }
28866 break;
28867 }
28868 default:;
28869 }
28870 break;
28871 }
28872 case MINUS_EXPR:
28873 {
28874 tree o20 = TREE_OPERAND (op0, 0);
28875 tree o21 = TREE_OPERAND (op0, 1);
28876 switch (TREE_CODE (o21))
28877 {
28878 case INTEGER_CST:
28879 {
28880 switch (TREE_CODE (op1))
28881 {
28882 case INTEGER_CST:
28883 {
28884 {
28885/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28886 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
28887 tree res = generic_simplify_48 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR);
28888 if (res) return res;
28889 }
28890 break;
28891 }
28892 default:;
28893 }
28894 break;
28895 }
28896 default:;
28897 }
28898 break;
28899 }
28900 default:;
28901 }
28902 return NULL_TREE;
28903}
28904
28905static tree
28906generic_simplify_LE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
28907{
28908 switch (TREE_CODE (op1))
28909 {
28910 case TRUNC_MOD_EXPR:
28911 {
28912 tree o30 = TREE_OPERAND (op1, 0);
28913 tree o31 = TREE_OPERAND (op1, 1);
28914 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
28915 {
28916 {
28917/* #line 600 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28918 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
28919 tree res = generic_simplify_86 (loc, type, op0, op1, captures, LE_EXPR);
28920 if (res) return res;
28921 }
28922 }
28923 break;
28924 }
28925 default:;
28926 }
28927 switch (TREE_CODE (op0))
28928 {
28929 case MULT_EXPR:
28930 {
28931 tree o20 = TREE_OPERAND (op0, 0);
28932 tree o21 = TREE_OPERAND (op0, 1);
28933 switch (TREE_CODE (op1))
28934 {
28935 case MULT_EXPR:
28936 {
28937 tree o50 = TREE_OPERAND (op1, 0);
28938 tree o51 = TREE_OPERAND (op1, 1);
28939 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
28940 {
28941 {
28942/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28943 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
28944 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LE_EXPR);
28945 if (res) return res;
28946 }
28947 }
28948 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
28949 {
28950 {
28951/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28952 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
28953 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LE_EXPR);
28954 if (res) return res;
28955 }
28956 }
28957 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
28958 {
28959 {
28960/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28961 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
28962 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LE_EXPR);
28963 if (res) return res;
28964 }
28965 }
28966 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
28967 {
28968 {
28969/* #line 1031 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28970 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
28971 tree res = generic_simplify_101 (loc, type, op0, op1, captures, LE_EXPR);
28972 if (res) return res;
28973 }
28974 }
28975 break;
28976 }
28977 default:;
28978 }
28979 break;
28980 }
28981 case MIN_EXPR:
28982 {
28983 tree o20 = TREE_OPERAND (op0, 0);
28984 tree o21 = TREE_OPERAND (op0, 1);
28985 switch (TREE_CODE (o21))
28986 {
28987 case INTEGER_CST:
28988 {
28989 switch (TREE_CODE (op1))
28990 {
28991 case INTEGER_CST:
28992 {
28993 {
28994/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
28995 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
28996 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
28997 if (res) return res;
28998 }
28999 break;
29000 }
29001 default:;
29002 }
29003 break;
29004 }
29005 default:;
29006 }
29007 break;
29008 }
29009 case MAX_EXPR:
29010 {
29011 tree o20 = TREE_OPERAND (op0, 0);
29012 tree o21 = TREE_OPERAND (op0, 1);
29013 switch (TREE_CODE (o21))
29014 {
29015 case INTEGER_CST:
29016 {
29017 switch (TREE_CODE (op1))
29018 {
29019 case INTEGER_CST:
29020 {
29021 {
29022/* #line 1485 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29023 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29024 tree res = generic_simplify_15 (loc, type, op0, op1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
29025 if (res) return res;
29026 }
29027 break;
29028 }
29029 default:;
29030 }
29031 break;
29032 }
29033 default:;
29034 }
29035 break;
29036 }
29037 default:;
29038 }
29039 switch (TREE_CODE (op1))
29040 {
29041 case INTEGER_CST:
29042 {
29043 {
29044/* #line 2261 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29045 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
29046 tree res = generic_simplify_151 (loc, type, op0, op1, captures, LE_EXPR, LT_EXPR);
29047 if (res) return res;
29048 }
29049 break;
29050 }
29051 default:;
29052 }
29053 switch (TREE_CODE (op0))
29054 {
29055 case MULT_EXPR:
29056 {
29057 tree o20 = TREE_OPERAND (op0, 0);
29058 tree o21 = TREE_OPERAND (op0, 1);
29059 switch (TREE_CODE (o21))
29060 {
29061 case INTEGER_CST:
29062 {
29063 if (integer_zerop (op1))
29064 {
29065 {
29066/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29067 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
29068 tree res = generic_simplify_172 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
29069 if (res) return res;
29070 }
29071 }
29072 break;
29073 }
29074 default:;
29075 }
29076 break;
29077 }
29078 default:;
29079 }
29080 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
29081 {
29082 {
29083/* #line 2341 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29084 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
29085 tree res = generic_simplify_156 (loc, type, op0, op1, captures, LE_EXPR);
29086 if (res) return res;
29087 }
29088 }
29089 switch (TREE_CODE (op0))
29090 {
29091 case BIT_NOT_EXPR:
29092 {
29093 tree o20 = TREE_OPERAND (op0, 0);
29094 switch (TREE_CODE (op1))
29095 {
29096 case BIT_NOT_EXPR:
29097 {
29098 tree o40 = TREE_OPERAND (op1, 0);
29099 {
29100/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29101 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
29102 tree res = generic_simplify_111 (loc, type, op0, op1, captures, LE_EXPR);
29103 if (res) return res;
29104 }
29105 break;
29106 }
29107 default:;
29108 }
29109 if (CONSTANT_CLASS_P (op1))
29110 {
29111 {
29112/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29113 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
29114 tree res = generic_simplify_218 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
29115 if (res) return res;
29116 }
29117 }
29118 break;
29119 }
29120 CASE_CONVERT:
29121 {
29122 tree o20 = TREE_OPERAND (op0, 0);
29123 switch (TREE_CODE (op1))
29124 {
29125 CASE_CONVERT:
29126 {
29127 tree o40 = TREE_OPERAND (op1, 0);
29128 {
29129/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29130 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
29131 tree res = generic_simplify_112 (loc, type, op0, op1, captures, LE_EXPR);
29132 if (res) return res;
29133 }
29134 break;
29135 }
29136 default:;
29137 }
29138 {
29139/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29140 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
29141 tree res = generic_simplify_112 (loc, type, op0, op1, captures, LE_EXPR);
29142 if (res) return res;
29143 }
29144 break;
29145 }
29146 default:;
29147 }
29148 switch (TREE_CODE (op1))
29149 {
29150 case REAL_CST:
29151 {
29152 {
29153/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29154 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
29155 tree res = generic_simplify_87 (loc, type, op0, op1, captures, LE_EXPR);
29156 if (res) return res;
29157 }
29158 break;
29159 }
29160 default:;
29161 }
29162 switch (TREE_CODE (op0))
29163 {
29164 case PLUS_EXPR:
29165 {
29166 tree o20 = TREE_OPERAND (op0, 0);
29167 tree o21 = TREE_OPERAND (op0, 1);
29168 switch (TREE_CODE (o21))
29169 {
29170 case REAL_CST:
29171 {
29172 switch (TREE_CODE (op1))
29173 {
29174 case REAL_CST:
29175 {
29176 {
29177/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29178 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29179 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, LE_EXPR);
29180 if (res) return res;
29181 }
29182 break;
29183 }
29184 default:;
29185 }
29186 break;
29187 }
29188 default:;
29189 }
29190 break;
29191 }
29192 case MINUS_EXPR:
29193 {
29194 tree o20 = TREE_OPERAND (op0, 0);
29195 tree o21 = TREE_OPERAND (op0, 1);
29196 switch (TREE_CODE (o21))
29197 {
29198 case REAL_CST:
29199 {
29200 switch (TREE_CODE (op1))
29201 {
29202 case REAL_CST:
29203 {
29204 {
29205/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29206 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29207 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, LE_EXPR);
29208 if (res) return res;
29209 }
29210 break;
29211 }
29212 default:;
29213 }
29214 break;
29215 }
29216 default:;
29217 }
29218 switch (TREE_CODE (o20))
29219 {
29220 case REAL_CST:
29221 {
29222 switch (TREE_CODE (op1))
29223 {
29224 case REAL_CST:
29225 {
29226 {
29227/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29228 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29229 tree res = generic_simplify_209 (loc, type, op0, op1, captures, LE_EXPR);
29230 if (res) return res;
29231 }
29232 break;
29233 }
29234 default:;
29235 }
29236 break;
29237 }
29238 default:;
29239 }
29240 break;
29241 }
29242 case EXACT_DIV_EXPR:
29243 {
29244 tree o20 = TREE_OPERAND (op0, 0);
29245 tree o21 = TREE_OPERAND (op0, 1);
29246 switch (TREE_CODE (o21))
29247 {
29248 case INTEGER_CST:
29249 {
29250 switch (TREE_CODE (op1))
29251 {
29252 case INTEGER_CST:
29253 {
29254 {
29255/* #line 2603 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29256 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29257 tree res = generic_simplify_20 (loc, type, op0, op1, captures, LE_EXPR);
29258 if (res) return res;
29259 }
29260 break;
29261 }
29262 default:;
29263 }
29264 break;
29265 }
29266 default:;
29267 }
29268 break;
29269 }
29270 case NEGATE_EXPR:
29271 {
29272 tree o20 = TREE_OPERAND (op0, 0);
29273 switch (TREE_CODE (op1))
29274 {
29275 case NEGATE_EXPR:
29276 {
29277 tree o40 = TREE_OPERAND (op1, 0);
29278 {
29279/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29280 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
29281 tree res = generic_simplify_52 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
29282 if (res) return res;
29283 }
29284 break;
29285 }
29286 default:;
29287 }
29288 if (CONSTANT_CLASS_P (op1))
29289 {
29290 {
29291/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29292 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
29293 tree res = generic_simplify_145 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
29294 if (res) return res;
29295 }
29296 }
29297 break;
29298 }
29299 CASE_CONVERT:
29300 {
29301 tree o20 = TREE_OPERAND (op0, 0);
29302 switch (TREE_CODE (op1))
29303 {
29304 CASE_CONVERT:
29305 {
29306 tree o40 = TREE_OPERAND (op1, 0);
29307 {
29308/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29309 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
29310 tree res = generic_simplify_131 (loc, type, op0, op1, captures, LE_EXPR);
29311 if (res) return res;
29312 }
29313 break;
29314 }
29315 default:;
29316 }
29317 {
29318/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29319 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
29320 tree res = generic_simplify_167 (loc, type, op0, op1, captures, LE_EXPR);
29321 if (res) return res;
29322 }
29323 switch (TREE_CODE (o20))
29324 {
29325 case ADDR_EXPR:
29326 {
29327 switch (TREE_CODE (op1))
29328 {
29329 CASE_CONVERT:
29330 {
29331 tree o40 = TREE_OPERAND (op1, 0);
29332 switch (TREE_CODE (o40))
29333 {
29334 case ADDR_EXPR:
29335 {
29336 {
29337/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29338 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
29339 tree res = generic_simplify_155 (loc, type, op0, op1, captures, LE_EXPR);
29340 if (res) return res;
29341 }
29342 break;
29343 }
29344 default:;
29345 }
29346 break;
29347 }
29348 case ADDR_EXPR:
29349 {
29350 {
29351/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29352 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
29353 tree res = generic_simplify_155 (loc, type, op0, op1, captures, LE_EXPR);
29354 if (res) return res;
29355 }
29356 break;
29357 }
29358 default:;
29359 }
29360 break;
29361 }
29362 default:;
29363 }
29364 switch (TREE_CODE (op1))
29365 {
29366 case INTEGER_CST:
29367 {
29368 {
29369/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29370 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
29371 tree res = generic_simplify_140 (loc, type, op0, op1, captures, LE_EXPR);
29372 if (res) return res;
29373 }
29374 break;
29375 }
29376 default:;
29377 }
29378 break;
29379 }
29380 case ADDR_EXPR:
29381 {
29382 switch (TREE_CODE (op1))
29383 {
29384 CASE_CONVERT:
29385 {
29386 tree o30 = TREE_OPERAND (op1, 0);
29387 switch (TREE_CODE (o30))
29388 {
29389 case ADDR_EXPR:
29390 {
29391 {
29392/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29393 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
29394 tree res = generic_simplify_49 (loc, type, op0, op1, captures, LE_EXPR);
29395 if (res) return res;
29396 }
29397 break;
29398 }
29399 default:;
29400 }
29401 break;
29402 }
29403 case ADDR_EXPR:
29404 {
29405 {
29406/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29407 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
29408 tree res = generic_simplify_49 (loc, type, op0, op1, captures, LE_EXPR);
29409 if (res) return res;
29410 }
29411 break;
29412 }
29413 default:;
29414 }
29415 break;
29416 }
29417 case CALL_EXPR:
29418 switch (get_call_combined_fn (op0))
29419 {
29420 case CFN_BUILT_IN_SQRTF:
29421 {
29422 tree o20 = CALL_EXPR_ARG (op0, 0);
29423 switch (TREE_CODE (op1))
29424 {
29425 case REAL_CST:
29426 {
29427 {
29428/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29429 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
29430 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
29431 if (res) return res;
29432 }
29433 break;
29434 }
29435 default:;
29436 }
29437 break;
29438 }
29439 case CFN_BUILT_IN_SQRT:
29440 {
29441 tree o20 = CALL_EXPR_ARG (op0, 0);
29442 switch (TREE_CODE (op1))
29443 {
29444 case REAL_CST:
29445 {
29446 {
29447/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29448 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
29449 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
29450 if (res) return res;
29451 }
29452 break;
29453 }
29454 default:;
29455 }
29456 break;
29457 }
29458 case CFN_BUILT_IN_SQRTL:
29459 {
29460 tree o20 = CALL_EXPR_ARG (op0, 0);
29461 switch (TREE_CODE (op1))
29462 {
29463 case REAL_CST:
29464 {
29465 {
29466/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29467 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
29468 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
29469 if (res) return res;
29470 }
29471 break;
29472 }
29473 default:;
29474 }
29475 break;
29476 }
29477 case CFN_SQRT:
29478 {
29479 tree o20 = CALL_EXPR_ARG (op0, 0);
29480 switch (TREE_CODE (op1))
29481 {
29482 case REAL_CST:
29483 {
29484 {
29485/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29486 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
29487 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, LE_EXPR);
29488 if (res) return res;
29489 }
29490 break;
29491 }
29492 default:;
29493 }
29494 break;
29495 }
29496 default:;
29497 }
29498 break;
29499 default:;
29500 }
29501 switch (TREE_CODE (op1))
29502 {
29503 case INTEGER_CST:
29504 {
29505 {
29506/* #line 2947 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29507 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
29508 tree res = generic_simplify_169 (loc, type, op0, op1, captures, LE_EXPR);
29509 if (res) return res;
29510 }
29511 break;
29512 }
29513 default:;
29514 }
29515 switch (TREE_CODE (op0))
29516 {
29517 case PLUS_EXPR:
29518 {
29519 tree o20 = TREE_OPERAND (op0, 0);
29520 tree o21 = TREE_OPERAND (op0, 1);
29521 switch (TREE_CODE (o21))
29522 {
29523 case INTEGER_CST:
29524 {
29525 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
29526 {
29527 {
29528/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29529 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
29530 tree res = generic_simplify_184 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
29531 if (res) return res;
29532 }
29533 }
29534 break;
29535 }
29536 default:;
29537 }
29538 break;
29539 }
29540 default:;
29541 }
29542 switch (TREE_CODE (op1))
29543 {
29544 case PLUS_EXPR:
29545 {
29546 tree o30 = TREE_OPERAND (op1, 0);
29547 tree o31 = TREE_OPERAND (op1, 1);
29548 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
29549 {
29550 switch (TREE_CODE (o31))
29551 {
29552 case INTEGER_CST:
29553 {
29554 {
29555/* #line 3044 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29556 tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
29557 tree res = generic_simplify_184 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
29558 if (res) return res;
29559 }
29560 break;
29561 }
29562 default:;
29563 }
29564 }
29565 break;
29566 }
29567 default:;
29568 }
29569 switch (TREE_CODE (op0))
29570 {
29571 case MINUS_EXPR:
29572 {
29573 tree o20 = TREE_OPERAND (op0, 0);
29574 tree o21 = TREE_OPERAND (op0, 1);
29575 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
29576 {
29577 {
29578/* #line 3057 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29579 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
29580 tree res = generic_simplify_143 (loc, type, op0, op1, captures, LE_EXPR);
29581 if (res) return res;
29582 }
29583 }
29584 break;
29585 }
29586 case REALPART_EXPR:
29587 {
29588 tree o20 = TREE_OPERAND (op0, 0);
29589 switch (TREE_CODE (o20))
29590 {
29591 case CALL_EXPR:
29592 switch (get_call_combined_fn (o20))
29593 {
29594 case CFN_SUB_OVERFLOW:
29595 {
29596 tree o30 = CALL_EXPR_ARG (o20, 0);
29597 tree o31 = CALL_EXPR_ARG (o20, 1);
29598 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
29599 {
29600 {
29601/* #line 3069 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29602 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
29603 tree res = generic_simplify_202 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR);
29604 if (res) return res;
29605 }
29606 }
29607 break;
29608 }
29609 default:;
29610 }
29611 break;
29612 default:;
29613 }
29614 break;
29615 }
29616 default:;
29617 }
29618 switch (TREE_CODE (op1))
29619 {
29620 case REALPART_EXPR:
29621 {
29622 tree o30 = TREE_OPERAND (op1, 0);
29623 switch (TREE_CODE (o30))
29624 {
29625 case CALL_EXPR:
29626 switch (get_call_combined_fn (o30))
29627 {
29628 case CFN_ADD_OVERFLOW:
29629 {
29630 tree o40 = CALL_EXPR_ARG (o30, 0);
29631 tree o41 = CALL_EXPR_ARG (o30, 1);
29632 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
29633 {
29634 {
29635/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29636 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
29637 tree res = generic_simplify_191 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
29638 if (res) return res;
29639 }
29640 }
29641 if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
29642 {
29643 {
29644/* #line 3077 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29645 tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
29646 tree res = generic_simplify_191 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
29647 if (res) return res;
29648 }
29649 }
29650 break;
29651 }
29652 default:;
29653 }
29654 break;
29655 default:;
29656 }
29657 break;
29658 }
29659 case TRUNC_DIV_EXPR:
29660 {
29661 tree o30 = TREE_OPERAND (op1, 0);
29662 tree o31 = TREE_OPERAND (op1, 1);
29663 if (integer_all_onesp (o30))
29664 {
29665 {
29666/* #line 3087 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29667 tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
29668 tree res = generic_simplify_51 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
29669 if (res) return res;
29670 }
29671 }
29672 break;
29673 }
29674 default:;
29675 }
29676 switch (TREE_CODE (op0))
29677 {
29678 case PLUS_EXPR:
29679 {
29680 tree o20 = TREE_OPERAND (op0, 0);
29681 tree o21 = TREE_OPERAND (op0, 1);
29682 switch (TREE_CODE (o21))
29683 {
29684 case INTEGER_CST:
29685 {
29686 switch (TREE_CODE (op1))
29687 {
29688 case INTEGER_CST:
29689 {
29690 {
29691/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29692 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
29693 tree res = generic_simplify_48 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR);
29694 if (res) return res;
29695 }
29696 break;
29697 }
29698 default:;
29699 }
29700 break;
29701 }
29702 default:;
29703 }
29704 break;
29705 }
29706 case MINUS_EXPR:
29707 {
29708 tree o20 = TREE_OPERAND (op0, 0);
29709 tree o21 = TREE_OPERAND (op0, 1);
29710 switch (TREE_CODE (o21))
29711 {
29712 case INTEGER_CST:
29713 {
29714 switch (TREE_CODE (op1))
29715 {
29716 case INTEGER_CST:
29717 {
29718 {
29719/* #line 3720 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29720 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
29721 tree res = generic_simplify_48 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR);
29722 if (res) return res;
29723 }
29724 break;
29725 }
29726 default:;
29727 }
29728 break;
29729 }
29730 default:;
29731 }
29732 break;
29733 }
29734 default:;
29735 }
29736 return NULL_TREE;
29737}
29738
29739static tree
29740generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
29741{
29742 switch (TREE_CODE (op0))
29743 {
29744 case MULT_EXPR:
29745 {
29746 tree o20 = TREE_OPERAND (op0, 0);
29747 tree o21 = TREE_OPERAND (op0, 1);
29748 switch (TREE_CODE (op1))
29749 {
29750 case MULT_EXPR:
29751 {
29752 tree o50 = TREE_OPERAND (op1, 0);
29753 tree o51 = TREE_OPERAND (op1, 1);
29754 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
29755 {
29756 {
29757/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29758 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
29759 tree res = generic_simplify_212 (loc, type, op0, op1, captures, EQ_EXPR);
29760 if (res) return res;
29761 }
29762 }
29763 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
29764 {
29765 {
29766/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29767 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
29768 tree res = generic_simplify_212 (loc, type, op0, op1, captures, EQ_EXPR);
29769 if (res) return res;
29770 }
29771 }
29772 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
29773 {
29774 {
29775/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29776 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
29777 tree res = generic_simplify_212 (loc, type, op0, op1, captures, EQ_EXPR);
29778 if (res) return res;
29779 }
29780 }
29781 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
29782 {
29783 {
29784/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29785 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
29786 tree res = generic_simplify_212 (loc, type, op0, op1, captures, EQ_EXPR);
29787 if (res) return res;
29788 }
29789 }
29790 break;
29791 }
29792 default:;
29793 }
29794 break;
29795 }
29796 case MIN_EXPR:
29797 {
29798 tree o20 = TREE_OPERAND (op0, 0);
29799 tree o21 = TREE_OPERAND (op0, 1);
29800 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
29801 {
29802 {
29803/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29804 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
29805 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
29806 if (res) return res;
29807 }
29808 }
29809 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
29810 {
29811 {
29812/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29813 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
29814 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
29815 if (res) return res;
29816 }
29817 }
29818 break;
29819 }
29820 case MAX_EXPR:
29821 {
29822 tree o20 = TREE_OPERAND (op0, 0);
29823 tree o21 = TREE_OPERAND (op0, 1);
29824 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
29825 {
29826 {
29827/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29828 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
29829 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
29830 if (res) return res;
29831 }
29832 }
29833 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
29834 {
29835 {
29836/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29837 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
29838 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
29839 if (res) return res;
29840 }
29841 }
29842 break;
29843 }
29844 default:;
29845 }
29846tree op0_pops[1];
29847if (tree_logical_inverted_value (op0, op0_pops))
29848 {
29849 tree o20 = op0_pops[0];
29850 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
29851 {
29852 if (tree_truth_valued_p (op1))
29853 {
29854 {
29855/* #line 965 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29856 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
29857 tree res = generic_simplify_61 (loc, type, op0, op1, captures, EQ_EXPR);
29858 if (res) return res;
29859 }
29860 }
29861 }
29862}
29863if (tree_truth_valued_p (op0))
29864 {
29865 tree op1_pops[1];
29866 if (tree_logical_inverted_value (op1, op1_pops))
29867 {
29868 tree o30 = op1_pops[0];
29869 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
29870 {
29871 {
29872/* #line 965 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29873 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
29874 tree res = generic_simplify_61 (loc, type, op0, op1, captures, EQ_EXPR);
29875 if (res) return res;
29876 }
29877 }
29878}
29879 }
29880 switch (TREE_CODE (op1))
29881 {
29882 case MIN_EXPR:
29883 {
29884 tree o30 = TREE_OPERAND (op1, 0);
29885 tree o31 = TREE_OPERAND (op1, 1);
29886 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
29887 {
29888 {
29889/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29890 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
29891 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
29892 if (res) return res;
29893 }
29894 }
29895 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
29896 {
29897 {
29898/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29899 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
29900 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
29901 if (res) return res;
29902 }
29903 }
29904 break;
29905 }
29906 case MAX_EXPR:
29907 {
29908 tree o30 = TREE_OPERAND (op1, 0);
29909 tree o31 = TREE_OPERAND (op1, 1);
29910 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
29911 {
29912 {
29913/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29914 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
29915 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
29916 if (res) return res;
29917 }
29918 }
29919 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
29920 {
29921 {
29922/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29923 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
29924 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
29925 if (res) return res;
29926 }
29927 }
29928 break;
29929 }
29930 default:;
29931 }
29932 switch (TREE_CODE (op0))
29933 {
29934 case MIN_EXPR:
29935 {
29936 tree o20 = TREE_OPERAND (op0, 0);
29937 tree o21 = TREE_OPERAND (op0, 1);
29938 switch (TREE_CODE (o21))
29939 {
29940 case INTEGER_CST:
29941 {
29942 switch (TREE_CODE (op1))
29943 {
29944 case INTEGER_CST:
29945 {
29946 {
29947/* #line 1468 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29948 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29949 tree res = generic_simplify_190 (loc, type, op0, op1, captures, EQ_EXPR);
29950 if (res) return res;
29951 }
29952 break;
29953 }
29954 default:;
29955 }
29956 break;
29957 }
29958 default:;
29959 }
29960 break;
29961 }
29962 case MAX_EXPR:
29963 {
29964 tree o20 = TREE_OPERAND (op0, 0);
29965 tree o21 = TREE_OPERAND (op0, 1);
29966 switch (TREE_CODE (o21))
29967 {
29968 case INTEGER_CST:
29969 {
29970 switch (TREE_CODE (op1))
29971 {
29972 case INTEGER_CST:
29973 {
29974 {
29975/* #line 1475 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
29976 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
29977 tree res = generic_simplify_168 (loc, type, op0, op1, captures, EQ_EXPR);
29978 if (res) return res;
29979 }
29980 break;
29981 }
29982 default:;
29983 }
29984 break;
29985 }
29986 default:;
29987 }
29988 break;
29989 }
29990 case BIT_AND_EXPR:
29991 {
29992 tree o20 = TREE_OPERAND (op0, 0);
29993 tree o21 = TREE_OPERAND (op0, 1);
29994 switch (TREE_CODE (o20))
29995 {
29996 case LSHIFT_EXPR:
29997 {
29998 tree o30 = TREE_OPERAND (o20, 0);
29999 tree o31 = TREE_OPERAND (o20, 1);
30000 if (integer_onep (o30))
30001 {
30002 if (integer_onep (o21))
30003 {
30004 if (integer_zerop (op1))
30005 {
30006 {
30007/* #line 1581 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30008 tree captures[1] ATTRIBUTE_UNUSED = { o31 };
30009 tree res = generic_simplify_22 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR);
30010 if (res) return res;
30011 }
30012 }
30013 }
30014 }
30015 break;
30016 }
30017 default:;
30018 }
30019 break;
30020 }
30021 case LSHIFT_EXPR:
30022 {
30023 tree o20 = TREE_OPERAND (op0, 0);
30024 tree o21 = TREE_OPERAND (op0, 1);
30025 switch (TREE_CODE (o20))
30026 {
30027 case INTEGER_CST:
30028 {
30029 switch (TREE_CODE (op1))
30030 {
30031 case INTEGER_CST:
30032 {
30033 {
30034/* #line 1589 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30035 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
30036 tree res = generic_simplify_106 (loc, type, op0, op1, captures, EQ_EXPR);
30037 if (res) return res;
30038 }
30039 break;
30040 }
30041 default:;
30042 }
30043 break;
30044 }
30045 default:;
30046 }
30047 break;
30048 }
30049 case MINUS_EXPR:
30050 {
30051 tree o20 = TREE_OPERAND (op0, 0);
30052 tree o21 = TREE_OPERAND (op0, 1);
30053 if (integer_zerop (op1))
30054 {
30055 {
30056/* #line 2314 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30057 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
30058 tree res = generic_simplify_213 (loc, type, op0, op1, captures, EQ_EXPR);
30059 if (res) return res;
30060 }
30061 }
30062 break;
30063 }
30064 case MULT_EXPR:
30065 {
30066 tree o20 = TREE_OPERAND (op0, 0);
30067 tree o21 = TREE_OPERAND (op0, 1);
30068 switch (TREE_CODE (o21))
30069 {
30070 case INTEGER_CST:
30071 {
30072 if (integer_zerop (op1))
30073 {
30074 {
30075/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30076 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
30077 tree res = generic_simplify_172 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
30078 if (res) return res;
30079 }
30080 }
30081 break;
30082 }
30083 default:;
30084 }
30085 break;
30086 }
30087 default:;
30088 }
30089 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
30090 {
30091 {
30092/* #line 2341 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30093 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
30094 tree res = generic_simplify_156 (loc, type, op0, op1, captures, EQ_EXPR);
30095 if (res) return res;
30096 }
30097 }
30098 switch (TREE_CODE (op0))
30099 {
30100 case BIT_NOT_EXPR:
30101 {
30102 tree o20 = TREE_OPERAND (op0, 0);
30103 switch (TREE_CODE (op1))
30104 {
30105 case BIT_NOT_EXPR:
30106 {
30107 tree o40 = TREE_OPERAND (op1, 0);
30108 {
30109/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30110 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
30111 tree res = generic_simplify_111 (loc, type, op0, op1, captures, EQ_EXPR);
30112 if (res) return res;
30113 }
30114 break;
30115 }
30116 default:;
30117 }
30118 if (CONSTANT_CLASS_P (op1))
30119 {
30120 {
30121/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30122 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
30123 tree res = generic_simplify_218 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
30124 if (res) return res;
30125 }
30126 }
30127 break;
30128 }
30129 CASE_CONVERT:
30130 {
30131 tree o20 = TREE_OPERAND (op0, 0);
30132 switch (TREE_CODE (op1))
30133 {
30134 CASE_CONVERT:
30135 {
30136 tree o40 = TREE_OPERAND (op1, 0);
30137 {
30138/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30139 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
30140 tree res = generic_simplify_112 (loc, type, op0, op1, captures, EQ_EXPR);
30141 if (res) return res;
30142 }
30143 break;
30144 }
30145 default:;
30146 }
30147 {
30148/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30149 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
30150 tree res = generic_simplify_112 (loc, type, op0, op1, captures, EQ_EXPR);
30151 if (res) return res;
30152 }
30153 break;
30154 }
30155 default:;
30156 }
30157 switch (TREE_CODE (op1))
30158 {
30159 case REAL_CST:
30160 {
30161 {
30162/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30163 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
30164 tree res = generic_simplify_87 (loc, type, op0, op1, captures, EQ_EXPR);
30165 if (res) return res;
30166 }
30167 break;
30168 }
30169 default:;
30170 }
30171 switch (TREE_CODE (op0))
30172 {
30173 case PLUS_EXPR:
30174 {
30175 tree o20 = TREE_OPERAND (op0, 0);
30176 tree o21 = TREE_OPERAND (op0, 1);
30177 switch (TREE_CODE (o21))
30178 {
30179 case REAL_CST:
30180 {
30181 switch (TREE_CODE (op1))
30182 {
30183 case REAL_CST:
30184 {
30185 {
30186/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30187 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
30188 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, EQ_EXPR);
30189 if (res) return res;
30190 }
30191 break;
30192 }
30193 default:;
30194 }
30195 break;
30196 }
30197 default:;
30198 }
30199 break;
30200 }
30201 case MINUS_EXPR:
30202 {
30203 tree o20 = TREE_OPERAND (op0, 0);
30204 tree o21 = TREE_OPERAND (op0, 1);
30205 switch (TREE_CODE (o21))
30206 {
30207 case REAL_CST:
30208 {
30209 switch (TREE_CODE (op1))
30210 {
30211 case REAL_CST:
30212 {
30213 {
30214/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30215 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
30216 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, EQ_EXPR);
30217 if (res) return res;
30218 }
30219 break;
30220 }
30221 default:;
30222 }
30223 break;
30224 }
30225 default:;
30226 }
30227 switch (TREE_CODE (o20))
30228 {
30229 case REAL_CST:
30230 {
30231 switch (TREE_CODE (op1))
30232 {
30233 case REAL_CST:
30234 {
30235 {
30236/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30237 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
30238 tree res = generic_simplify_209 (loc, type, op0, op1, captures, EQ_EXPR);
30239 if (res) return res;
30240 }
30241 break;
30242 }
30243 default:;
30244 }
30245 break;
30246 }
30247 default:;
30248 }
30249 break;
30250 }
30251 case EXACT_DIV_EXPR:
30252 {
30253 tree o20 = TREE_OPERAND (op0, 0);
30254 tree o21 = TREE_OPERAND (op0, 1);
30255 switch (TREE_CODE (op1))
30256 {
30257 case INTEGER_CST:
30258 {
30259 {
30260/* #line 2588 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30261 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
30262 tree res = generic_simplify_35 (loc, type, op0, op1, captures, EQ_EXPR);
30263 if (res) return res;
30264 }
30265 break;
30266 }
30267 default:;
30268 }
30269 break;
30270 }
30271 case NEGATE_EXPR:
30272 {
30273 tree o20 = TREE_OPERAND (op0, 0);
30274 switch (TREE_CODE (op1))
30275 {
30276 case NEGATE_EXPR:
30277 {
30278 tree o40 = TREE_OPERAND (op1, 0);
30279 {
30280/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30281 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
30282 tree res = generic_simplify_52 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
30283 if (res) return res;
30284 }
30285 break;
30286 }
30287 default:;
30288 }
30289 if (CONSTANT_CLASS_P (op1))
30290 {
30291 {
30292/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30293 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30294 tree res = generic_simplify_145 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
30295 if (res) return res;
30296 }
30297 }
30298 break;
30299 }
30300 case ABS_EXPR:
30301 {
30302 tree o20 = TREE_OPERAND (op0, 0);
30303 if (zerop (op1))
30304 {
30305 {
30306/* #line 2670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30307 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30308 tree res = generic_simplify_124 (loc, type, op0, op1, captures, EQ_EXPR);
30309 if (res) return res;
30310 }
30311 }
30312 break;
30313 }
30314 CASE_CONVERT:
30315 {
30316 tree o20 = TREE_OPERAND (op0, 0);
30317 switch (TREE_CODE (op1))
30318 {
30319 CASE_CONVERT:
30320 {
30321 tree o40 = TREE_OPERAND (op1, 0);
30322 {
30323/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30324 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
30325 tree res = generic_simplify_131 (loc, type, op0, op1, captures, EQ_EXPR);
30326 if (res) return res;
30327 }
30328 break;
30329 }
30330 default:;
30331 }
30332 {
30333/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30334 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
30335 tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
30336 if (res) return res;
30337 }
30338 switch (TREE_CODE (o20))
30339 {
30340 case BIT_IOR_EXPR:
30341 {
30342 tree o30 = TREE_OPERAND (o20, 0);
30343 tree o31 = TREE_OPERAND (o20, 1);
30344 switch (TREE_CODE (o31))
30345 {
30346 case INTEGER_CST:
30347 {
30348 switch (TREE_CODE (op1))
30349 {
30350 case INTEGER_CST:
30351 {
30352 {
30353/* #line 2753 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30354 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
30355 tree res = generic_simplify_123 (loc, type, op0, op1, captures, EQ_EXPR);
30356 if (res) return res;
30357 }
30358 break;
30359 }
30360 default:;
30361 }
30362 break;
30363 }
30364 default:;
30365 }
30366 break;
30367 }
30368 default:;
30369 }
30370 break;
30371 }
30372 case ADDR_EXPR:
30373 {
30374 switch (TREE_CODE (op1))
30375 {
30376 case SSA_NAME:
30377 {
30378 {
30379/* #line 2737 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30380 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
30381 tree res = generic_simplify_121 (loc, type, op0, op1, captures, EQ_EXPR);
30382 if (res) return res;
30383 }
30384 break;
30385 }
30386 default:;
30387 }
30388 break;
30389 }
30390 case BIT_IOR_EXPR:
30391 {
30392 tree o20 = TREE_OPERAND (op0, 0);
30393 tree o21 = TREE_OPERAND (op0, 1);
30394 switch (TREE_CODE (o21))
30395 {
30396 case INTEGER_CST:
30397 {
30398 switch (TREE_CODE (op1))
30399 {
30400 case INTEGER_CST:
30401 {
30402 {
30403/* #line 2753 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30404 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
30405 tree res = generic_simplify_123 (loc, type, op0, op1, captures, EQ_EXPR);
30406 if (res) return res;
30407 }
30408 break;
30409 }
30410 default:;
30411 }
30412 break;
30413 }
30414 default:;
30415 }
30416 break;
30417 }
30418 case BIT_XOR_EXPR:
30419 {
30420 tree o20 = TREE_OPERAND (op0, 0);
30421 tree o21 = TREE_OPERAND (op0, 1);
30422 if (integer_zerop (op1))
30423 {
30424 {
30425/* #line 2760 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30426 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
30427 tree res = generic_simplify_93 (loc, type, op0, op1, captures, EQ_EXPR);
30428 if (res) return res;
30429 }
30430 }
30431 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
30432 {
30433 {
30434/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30435 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
30436 tree res = generic_simplify_94 (loc, type, op0, op1, captures, EQ_EXPR);
30437 if (res) return res;
30438 }
30439 }
30440 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
30441 {
30442 {
30443/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30444 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
30445 tree res = generic_simplify_94 (loc, type, op0, op1, captures, EQ_EXPR);
30446 if (res) return res;
30447 }
30448 }
30449 break;
30450 }
30451 case CALL_EXPR:
30452 switch (get_call_combined_fn (op0))
30453 {
30454 case CFN_BUILT_IN_SQRTF:
30455 {
30456 tree o20 = CALL_EXPR_ARG (op0, 0);
30457 switch (TREE_CODE (op1))
30458 {
30459 case REAL_CST:
30460 {
30461 {
30462/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30463 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30464 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
30465 if (res) return res;
30466 }
30467 break;
30468 }
30469 default:;
30470 }
30471 break;
30472 }
30473 case CFN_BUILT_IN_SQRT:
30474 {
30475 tree o20 = CALL_EXPR_ARG (op0, 0);
30476 switch (TREE_CODE (op1))
30477 {
30478 case REAL_CST:
30479 {
30480 {
30481/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30482 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30483 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
30484 if (res) return res;
30485 }
30486 break;
30487 }
30488 default:;
30489 }
30490 break;
30491 }
30492 case CFN_BUILT_IN_SQRTL:
30493 {
30494 tree o20 = CALL_EXPR_ARG (op0, 0);
30495 switch (TREE_CODE (op1))
30496 {
30497 case REAL_CST:
30498 {
30499 {
30500/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30501 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30502 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
30503 if (res) return res;
30504 }
30505 break;
30506 }
30507 default:;
30508 }
30509 break;
30510 }
30511 case CFN_SQRT:
30512 {
30513 tree o20 = CALL_EXPR_ARG (op0, 0);
30514 switch (TREE_CODE (op1))
30515 {
30516 case REAL_CST:
30517 {
30518 {
30519/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30520 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30521 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, EQ_EXPR);
30522 if (res) return res;
30523 }
30524 break;
30525 }
30526 default:;
30527 }
30528 break;
30529 }
30530 default:;
30531 }
30532 break;
30533 default:;
30534 }
30535 switch (TREE_CODE (op1))
30536 {
30537 case BIT_XOR_EXPR:
30538 {
30539 tree o30 = TREE_OPERAND (op1, 0);
30540 tree o31 = TREE_OPERAND (op1, 1);
30541 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
30542 {
30543 {
30544/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30545 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
30546 tree res = generic_simplify_94 (loc, type, op0, op1, captures, EQ_EXPR);
30547 if (res) return res;
30548 }
30549 }
30550 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
30551 {
30552 {
30553/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30554 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
30555 tree res = generic_simplify_94 (loc, type, op0, op1, captures, EQ_EXPR);
30556 if (res) return res;
30557 }
30558 }
30559 break;
30560 }
30561 default:;
30562 }
30563 switch (TREE_CODE (op0))
30564 {
30565 CASE_CONVERT:
30566 {
30567 tree o20 = TREE_OPERAND (op0, 0);
30568 switch (TREE_CODE (o20))
30569 {
30570 case BIT_XOR_EXPR:
30571 {
30572 tree o30 = TREE_OPERAND (o20, 0);
30573 tree o31 = TREE_OPERAND (o20, 1);
30574 switch (TREE_CODE (o31))
30575 {
30576 case INTEGER_CST:
30577 {
30578 switch (TREE_CODE (op1))
30579 {
30580 case INTEGER_CST:
30581 {
30582 {
30583/* #line 2771 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30584 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
30585 tree res = generic_simplify_72 (loc, type, op0, op1, captures, EQ_EXPR);
30586 if (res) return res;
30587 }
30588 break;
30589 }
30590 default:;
30591 }
30592 break;
30593 }
30594 default:;
30595 }
30596 break;
30597 }
30598 case ADDR_EXPR:
30599 {
30600 switch (TREE_CODE (op1))
30601 {
30602 CASE_CONVERT:
30603 {
30604 tree o40 = TREE_OPERAND (op1, 0);
30605 switch (TREE_CODE (o40))
30606 {
30607 case ADDR_EXPR:
30608 {
30609 {
30610/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30611 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
30612 tree res = generic_simplify_155 (loc, type, op0, op1, captures, EQ_EXPR);
30613 if (res) return res;
30614 }
30615 break;
30616 }
30617 default:;
30618 }
30619 break;
30620 }
30621 case ADDR_EXPR:
30622 {
30623 {
30624/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30625 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
30626 tree res = generic_simplify_155 (loc, type, op0, op1, captures, EQ_EXPR);
30627 if (res) return res;
30628 }
30629 break;
30630 }
30631 default:;
30632 }
30633 if (integer_zerop (op1))
30634 {
30635 {
30636/* #line 2776 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30637 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
30638 tree res = generic_simplify_215 (loc, type, op0, op1, captures, EQ_EXPR);
30639 if (res) return res;
30640 }
30641 }
30642 break;
30643 }
30644 default:;
30645 }
30646 break;
30647 }
30648 case BIT_XOR_EXPR:
30649 {
30650 tree o20 = TREE_OPERAND (op0, 0);
30651 tree o21 = TREE_OPERAND (op0, 1);
30652 switch (TREE_CODE (o21))
30653 {
30654 case INTEGER_CST:
30655 {
30656 switch (TREE_CODE (op1))
30657 {
30658 case INTEGER_CST:
30659 {
30660 {
30661/* #line 2771 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30662 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
30663 tree res = generic_simplify_72 (loc, type, op0, op1, captures, EQ_EXPR);
30664 if (res) return res;
30665 }
30666 break;
30667 }
30668 default:;
30669 }
30670 break;
30671 }
30672 default:;
30673 }
30674 break;
30675 }
30676 case ADDR_EXPR:
30677 {
30678 switch (TREE_CODE (op1))
30679 {
30680 CASE_CONVERT:
30681 {
30682 tree o30 = TREE_OPERAND (op1, 0);
30683 switch (TREE_CODE (o30))
30684 {
30685 case ADDR_EXPR:
30686 {
30687 {
30688/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30689 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
30690 tree res = generic_simplify_49 (loc, type, op0, op1, captures, EQ_EXPR);
30691 if (res) return res;
30692 }
30693 break;
30694 }
30695 default:;
30696 }
30697 break;
30698 }
30699 case ADDR_EXPR:
30700 {
30701 {
30702/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30703 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
30704 tree res = generic_simplify_49 (loc, type, op0, op1, captures, EQ_EXPR);
30705 if (res) return res;
30706 }
30707 break;
30708 }
30709 default:;
30710 }
30711 if (integer_zerop (op1))
30712 {
30713 {
30714/* #line 2776 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30715 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
30716 tree res = generic_simplify_215 (loc, type, op0, op1, captures, EQ_EXPR);
30717 if (res) return res;
30718 }
30719 }
30720 break;
30721 }
30722 case BIT_AND_EXPR:
30723 {
30724 tree o20 = TREE_OPERAND (op0, 0);
30725 tree o21 = TREE_OPERAND (op0, 1);
30726 if (integer_pow2p (o21))
30727 {
30728 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
30729 {
30730 {
30731/* #line 2785 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30732 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
30733 tree res = generic_simplify_98 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR);
30734 if (res) return res;
30735 }
30736 }
30737 }
30738 switch (TREE_CODE (o20))
30739 {
30740 CASE_CONVERT:
30741 {
30742 tree o30 = TREE_OPERAND (o20, 0);
30743 if (integer_pow2p (o21))
30744 {
30745 if (integer_zerop (op1))
30746 {
30747 {
30748/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30749 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
30750 tree res = generic_simplify_19 (loc, type, op0, op1, captures, EQ_EXPR, GE_EXPR);
30751 if (res) return res;
30752 }
30753 }
30754 }
30755 break;
30756 }
30757 default:;
30758 }
30759 if (integer_pow2p (o21))
30760 {
30761 if (integer_zerop (op1))
30762 {
30763 {
30764/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30765 tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
30766 tree res = generic_simplify_90 (loc, type, op0, op1, captures, EQ_EXPR, GE_EXPR);
30767 if (res) return res;
30768 }
30769 }
30770 }
30771 break;
30772 }
30773 default:;
30774 }
30775 {
30776/* #line 2919 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30777 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
30778 tree res = generic_simplify_206 (loc, type, op0, op1, captures, EQ_EXPR);
30779 if (res) return res;
30780 }
30781 switch (TREE_CODE (op0))
30782 {
30783 CASE_CONVERT:
30784 {
30785 tree o20 = TREE_OPERAND (op0, 0);
30786 switch (TREE_CODE (op1))
30787 {
30788 case INTEGER_CST:
30789 {
30790 {
30791/* #line 2932 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30792 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
30793 tree res = generic_simplify_181 (loc, type, op0, op1, captures, EQ_EXPR);
30794 if (res) return res;
30795 }
30796 break;
30797 }
30798 default:;
30799 }
30800 break;
30801 }
30802 default:;
30803 }
30804 if (integer_onep (op1))
30805 {
30806 {
30807/* #line 3025 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30808 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
30809/* #line 3025 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30810 if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
30811 {
30812 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
30813 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3027, %s:%d\n", __FILE__, __LINE__);
30814 tree res_op0;
30815 res_op0 = captures[0];
30816 tree res;
30817 res = non_lvalue_loc (loc, res_op0);
30818 return res;
30819 }
30820 }
30821 }
30822 switch (TREE_CODE (op0))
30823 {
30824 case PLUS_EXPR:
30825 {
30826 tree o20 = TREE_OPERAND (op0, 0);
30827 tree o21 = TREE_OPERAND (op0, 1);
30828 switch (TREE_CODE (o21))
30829 {
30830 case INTEGER_CST:
30831 {
30832 switch (TREE_CODE (op1))
30833 {
30834 case INTEGER_CST:
30835 {
30836 {
30837/* #line 3705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30838 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
30839 tree res = generic_simplify_64 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
30840 if (res) return res;
30841 }
30842 break;
30843 }
30844 default:;
30845 }
30846 break;
30847 }
30848 default:;
30849 }
30850 break;
30851 }
30852 case MINUS_EXPR:
30853 {
30854 tree o20 = TREE_OPERAND (op0, 0);
30855 tree o21 = TREE_OPERAND (op0, 1);
30856 switch (TREE_CODE (o21))
30857 {
30858 case INTEGER_CST:
30859 {
30860 switch (TREE_CODE (op1))
30861 {
30862 case INTEGER_CST:
30863 {
30864 {
30865/* #line 3705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30866 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
30867 tree res = generic_simplify_64 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
30868 if (res) return res;
30869 }
30870 break;
30871 }
30872 default:;
30873 }
30874 break;
30875 }
30876 default:;
30877 }
30878 break;
30879 }
30880 default:;
30881 }
30882 return NULL_TREE;
30883}
30884
30885static tree
30886generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
30887{
30888 switch (TREE_CODE (op0))
30889 {
30890 case MULT_EXPR:
30891 {
30892 tree o20 = TREE_OPERAND (op0, 0);
30893 tree o21 = TREE_OPERAND (op0, 1);
30894 switch (TREE_CODE (op1))
30895 {
30896 case MULT_EXPR:
30897 {
30898 tree o50 = TREE_OPERAND (op1, 0);
30899 tree o51 = TREE_OPERAND (op1, 1);
30900 if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
30901 {
30902 {
30903/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30904 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
30905 tree res = generic_simplify_212 (loc, type, op0, op1, captures, NE_EXPR);
30906 if (res) return res;
30907 }
30908 }
30909 if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
30910 {
30911 {
30912/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30913 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
30914 tree res = generic_simplify_212 (loc, type, op0, op1, captures, NE_EXPR);
30915 if (res) return res;
30916 }
30917 }
30918 if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
30919 {
30920 {
30921/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30922 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
30923 tree res = generic_simplify_212 (loc, type, op0, op1, captures, NE_EXPR);
30924 if (res) return res;
30925 }
30926 }
30927 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
30928 {
30929 {
30930/* #line 1018 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30931 tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
30932 tree res = generic_simplify_212 (loc, type, op0, op1, captures, NE_EXPR);
30933 if (res) return res;
30934 }
30935 }
30936 break;
30937 }
30938 default:;
30939 }
30940 break;
30941 }
30942 case MIN_EXPR:
30943 {
30944 tree o20 = TREE_OPERAND (op0, 0);
30945 tree o21 = TREE_OPERAND (op0, 1);
30946 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
30947 {
30948 {
30949/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30950 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
30951 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
30952 if (res) return res;
30953 }
30954 }
30955 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
30956 {
30957 {
30958/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30959 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
30960 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
30961 if (res) return res;
30962 }
30963 }
30964 break;
30965 }
30966 case MAX_EXPR:
30967 {
30968 tree o20 = TREE_OPERAND (op0, 0);
30969 tree o21 = TREE_OPERAND (op0, 1);
30970 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
30971 {
30972 {
30973/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30974 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
30975 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
30976 if (res) return res;
30977 }
30978 }
30979 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
30980 {
30981 {
30982/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
30983 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
30984 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
30985 if (res) return res;
30986 }
30987 }
30988 break;
30989 }
30990 default:;
30991 }
30992tree op0_pops[1];
30993if (tree_logical_inverted_value (op0, op0_pops))
30994 {
30995 tree o20 = op0_pops[0];
30996 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
30997 {
30998 if (tree_truth_valued_p (op1))
30999 {
31000 {
31001/* #line 965 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31002 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
31003 tree res = generic_simplify_61 (loc, type, op0, op1, captures, NE_EXPR);
31004 if (res) return res;
31005 }
31006 }
31007 }
31008}
31009if (tree_truth_valued_p (op0))
31010 {
31011 tree op1_pops[1];
31012 if (tree_logical_inverted_value (op1, op1_pops))
31013 {
31014 tree o30 = op1_pops[0];
31015 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
31016 {
31017 {
31018/* #line 965 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31019 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
31020 tree res = generic_simplify_61 (loc, type, op0, op1, captures, NE_EXPR);
31021 if (res) return res;
31022 }
31023 }
31024}
31025 }
31026 switch (TREE_CODE (op1))
31027 {
31028 case MIN_EXPR:
31029 {
31030 tree o30 = TREE_OPERAND (op1, 0);
31031 tree o31 = TREE_OPERAND (op1, 1);
31032 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
31033 {
31034 {
31035/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31036 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
31037 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
31038 if (res) return res;
31039 }
31040 }
31041 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
31042 {
31043 {
31044/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31045 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
31046 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
31047 if (res) return res;
31048 }
31049 }
31050 break;
31051 }
31052 case MAX_EXPR:
31053 {
31054 tree o30 = TREE_OPERAND (op1, 0);
31055 tree o31 = TREE_OPERAND (op1, 1);
31056 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
31057 {
31058 {
31059/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31060 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
31061 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
31062 if (res) return res;
31063 }
31064 }
31065 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
31066 {
31067 {
31068/* #line 1461 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31069 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
31070 tree res = generic_simplify_99 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
31071 if (res) return res;
31072 }
31073 }
31074 break;
31075 }
31076 default:;
31077 }
31078 switch (TREE_CODE (op0))
31079 {
31080 case MIN_EXPR:
31081 {
31082 tree o20 = TREE_OPERAND (op0, 0);
31083 tree o21 = TREE_OPERAND (op0, 1);
31084 switch (TREE_CODE (o21))
31085 {
31086 case INTEGER_CST:
31087 {
31088 switch (TREE_CODE (op1))
31089 {
31090 case INTEGER_CST:
31091 {
31092 {
31093/* #line 1468 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31094 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31095 tree res = generic_simplify_190 (loc, type, op0, op1, captures, NE_EXPR);
31096 if (res) return res;
31097 }
31098 break;
31099 }
31100 default:;
31101 }
31102 break;
31103 }
31104 default:;
31105 }
31106 break;
31107 }
31108 case MAX_EXPR:
31109 {
31110 tree o20 = TREE_OPERAND (op0, 0);
31111 tree o21 = TREE_OPERAND (op0, 1);
31112 switch (TREE_CODE (o21))
31113 {
31114 case INTEGER_CST:
31115 {
31116 switch (TREE_CODE (op1))
31117 {
31118 case INTEGER_CST:
31119 {
31120 {
31121/* #line 1475 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31122 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31123 tree res = generic_simplify_168 (loc, type, op0, op1, captures, NE_EXPR);
31124 if (res) return res;
31125 }
31126 break;
31127 }
31128 default:;
31129 }
31130 break;
31131 }
31132 default:;
31133 }
31134 break;
31135 }
31136 case BIT_AND_EXPR:
31137 {
31138 tree o20 = TREE_OPERAND (op0, 0);
31139 tree o21 = TREE_OPERAND (op0, 1);
31140 switch (TREE_CODE (o20))
31141 {
31142 case LSHIFT_EXPR:
31143 {
31144 tree o30 = TREE_OPERAND (o20, 0);
31145 tree o31 = TREE_OPERAND (o20, 1);
31146 if (integer_onep (o30))
31147 {
31148 if (integer_onep (o21))
31149 {
31150 if (integer_zerop (op1))
31151 {
31152 {
31153/* #line 1581 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31154 tree captures[1] ATTRIBUTE_UNUSED = { o31 };
31155 tree res = generic_simplify_22 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
31156 if (res) return res;
31157 }
31158 }
31159 }
31160 }
31161 break;
31162 }
31163 default:;
31164 }
31165 break;
31166 }
31167 case LSHIFT_EXPR:
31168 {
31169 tree o20 = TREE_OPERAND (op0, 0);
31170 tree o21 = TREE_OPERAND (op0, 1);
31171 switch (TREE_CODE (o20))
31172 {
31173 case INTEGER_CST:
31174 {
31175 switch (TREE_CODE (op1))
31176 {
31177 case INTEGER_CST:
31178 {
31179 {
31180/* #line 1589 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31181 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31182 tree res = generic_simplify_106 (loc, type, op0, op1, captures, NE_EXPR);
31183 if (res) return res;
31184 }
31185 break;
31186 }
31187 default:;
31188 }
31189 break;
31190 }
31191 default:;
31192 }
31193 break;
31194 }
31195 case MINUS_EXPR:
31196 {
31197 tree o20 = TREE_OPERAND (op0, 0);
31198 tree o21 = TREE_OPERAND (op0, 1);
31199 if (integer_zerop (op1))
31200 {
31201 {
31202/* #line 2314 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31203 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
31204 tree res = generic_simplify_213 (loc, type, op0, op1, captures, NE_EXPR);
31205 if (res) return res;
31206 }
31207 }
31208 break;
31209 }
31210 case MULT_EXPR:
31211 {
31212 tree o20 = TREE_OPERAND (op0, 0);
31213 tree o21 = TREE_OPERAND (op0, 1);
31214 switch (TREE_CODE (o21))
31215 {
31216 case INTEGER_CST:
31217 {
31218 if (integer_zerop (op1))
31219 {
31220 {
31221/* #line 2326 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31222 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
31223 tree res = generic_simplify_172 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
31224 if (res) return res;
31225 }
31226 }
31227 break;
31228 }
31229 default:;
31230 }
31231 break;
31232 }
31233 default:;
31234 }
31235 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
31236 {
31237 {
31238/* #line 2349 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31239 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
31240 tree res = generic_simplify_32 (loc, type, op0, op1, captures, NE_EXPR);
31241 if (res) return res;
31242 }
31243 }
31244 switch (TREE_CODE (op0))
31245 {
31246 case BIT_NOT_EXPR:
31247 {
31248 tree o20 = TREE_OPERAND (op0, 0);
31249 switch (TREE_CODE (op1))
31250 {
31251 case BIT_NOT_EXPR:
31252 {
31253 tree o40 = TREE_OPERAND (op1, 0);
31254 {
31255/* #line 2370 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31256 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
31257 tree res = generic_simplify_111 (loc, type, op0, op1, captures, NE_EXPR);
31258 if (res) return res;
31259 }
31260 break;
31261 }
31262 default:;
31263 }
31264 if (CONSTANT_CLASS_P (op1))
31265 {
31266 {
31267/* #line 2378 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31268 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
31269 tree res = generic_simplify_218 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
31270 if (res) return res;
31271 }
31272 }
31273 break;
31274 }
31275 CASE_CONVERT:
31276 {
31277 tree o20 = TREE_OPERAND (op0, 0);
31278 switch (TREE_CODE (op1))
31279 {
31280 CASE_CONVERT:
31281 {
31282 tree o40 = TREE_OPERAND (op1, 0);
31283 {
31284/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31285 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
31286 tree res = generic_simplify_112 (loc, type, op0, op1, captures, NE_EXPR);
31287 if (res) return res;
31288 }
31289 break;
31290 }
31291 default:;
31292 }
31293 {
31294/* #line 2386 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31295 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
31296 tree res = generic_simplify_112 (loc, type, op0, op1, captures, NE_EXPR);
31297 if (res) return res;
31298 }
31299 break;
31300 }
31301 default:;
31302 }
31303 switch (TREE_CODE (op1))
31304 {
31305 case REAL_CST:
31306 {
31307 {
31308/* #line 2416 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31309 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
31310 tree res = generic_simplify_87 (loc, type, op0, op1, captures, NE_EXPR);
31311 if (res) return res;
31312 }
31313 break;
31314 }
31315 default:;
31316 }
31317 switch (TREE_CODE (op0))
31318 {
31319 case PLUS_EXPR:
31320 {
31321 tree o20 = TREE_OPERAND (op0, 0);
31322 tree o21 = TREE_OPERAND (op0, 1);
31323 switch (TREE_CODE (o21))
31324 {
31325 case REAL_CST:
31326 {
31327 switch (TREE_CODE (op1))
31328 {
31329 case REAL_CST:
31330 {
31331 {
31332/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31333 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31334 tree res = generic_simplify_207 (loc, type, op0, op1, captures, PLUS_EXPR, NE_EXPR);
31335 if (res) return res;
31336 }
31337 break;
31338 }
31339 default:;
31340 }
31341 break;
31342 }
31343 default:;
31344 }
31345 break;
31346 }
31347 case MINUS_EXPR:
31348 {
31349 tree o20 = TREE_OPERAND (op0, 0);
31350 tree o21 = TREE_OPERAND (op0, 1);
31351 switch (TREE_CODE (o21))
31352 {
31353 case REAL_CST:
31354 {
31355 switch (TREE_CODE (op1))
31356 {
31357 case REAL_CST:
31358 {
31359 {
31360/* #line 2473 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31361 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31362 tree res = generic_simplify_207 (loc, type, op0, op1, captures, MINUS_EXPR, NE_EXPR);
31363 if (res) return res;
31364 }
31365 break;
31366 }
31367 default:;
31368 }
31369 break;
31370 }
31371 default:;
31372 }
31373 switch (TREE_CODE (o20))
31374 {
31375 case REAL_CST:
31376 {
31377 switch (TREE_CODE (op1))
31378 {
31379 case REAL_CST:
31380 {
31381 {
31382/* #line 2489 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31383 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31384 tree res = generic_simplify_209 (loc, type, op0, op1, captures, NE_EXPR);
31385 if (res) return res;
31386 }
31387 break;
31388 }
31389 default:;
31390 }
31391 break;
31392 }
31393 default:;
31394 }
31395 break;
31396 }
31397 case EXACT_DIV_EXPR:
31398 {
31399 tree o20 = TREE_OPERAND (op0, 0);
31400 tree o21 = TREE_OPERAND (op0, 1);
31401 switch (TREE_CODE (op1))
31402 {
31403 case INTEGER_CST:
31404 {
31405 {
31406/* #line 2588 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31407 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
31408 tree res = generic_simplify_35 (loc, type, op0, op1, captures, NE_EXPR);
31409 if (res) return res;
31410 }
31411 break;
31412 }
31413 default:;
31414 }
31415 break;
31416 }
31417 case NEGATE_EXPR:
31418 {
31419 tree o20 = TREE_OPERAND (op0, 0);
31420 switch (TREE_CODE (op1))
31421 {
31422 case NEGATE_EXPR:
31423 {
31424 tree o40 = TREE_OPERAND (op1, 0);
31425 {
31426/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31427 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
31428 tree res = generic_simplify_52 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
31429 if (res) return res;
31430 }
31431 break;
31432 }
31433 default:;
31434 }
31435 if (CONSTANT_CLASS_P (op1))
31436 {
31437 {
31438/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31439 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31440 tree res = generic_simplify_145 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
31441 if (res) return res;
31442 }
31443 }
31444 break;
31445 }
31446 case ABS_EXPR:
31447 {
31448 tree o20 = TREE_OPERAND (op0, 0);
31449 if (zerop (op1))
31450 {
31451 {
31452/* #line 2670 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31453 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31454 tree res = generic_simplify_124 (loc, type, op0, op1, captures, NE_EXPR);
31455 if (res) return res;
31456 }
31457 }
31458 break;
31459 }
31460 CASE_CONVERT:
31461 {
31462 tree o20 = TREE_OPERAND (op0, 0);
31463 switch (TREE_CODE (op1))
31464 {
31465 CASE_CONVERT:
31466 {
31467 tree o40 = TREE_OPERAND (op1, 0);
31468 {
31469/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31470 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
31471 tree res = generic_simplify_131 (loc, type, op0, op1, captures, NE_EXPR);
31472 if (res) return res;
31473 }
31474 break;
31475 }
31476 default:;
31477 }
31478 {
31479/* #line 2676 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31480 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
31481 tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
31482 if (res) return res;
31483 }
31484 switch (TREE_CODE (o20))
31485 {
31486 case BIT_IOR_EXPR:
31487 {
31488 tree o30 = TREE_OPERAND (o20, 0);
31489 tree o31 = TREE_OPERAND (o20, 1);
31490 switch (TREE_CODE (o31))
31491 {
31492 case INTEGER_CST:
31493 {
31494 switch (TREE_CODE (op1))
31495 {
31496 case INTEGER_CST:
31497 {
31498 {
31499/* #line 2753 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31500 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
31501 tree res = generic_simplify_123 (loc, type, op0, op1, captures, NE_EXPR);
31502 if (res) return res;
31503 }
31504 break;
31505 }
31506 default:;
31507 }
31508 break;
31509 }
31510 default:;
31511 }
31512 break;
31513 }
31514 default:;
31515 }
31516 break;
31517 }
31518 case ADDR_EXPR:
31519 {
31520 switch (TREE_CODE (op1))
31521 {
31522 case SSA_NAME:
31523 {
31524 {
31525/* #line 2737 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31526 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
31527 tree res = generic_simplify_121 (loc, type, op0, op1, captures, NE_EXPR);
31528 if (res) return res;
31529 }
31530 break;
31531 }
31532 default:;
31533 }
31534 break;
31535 }
31536 case BIT_IOR_EXPR:
31537 {
31538 tree o20 = TREE_OPERAND (op0, 0);
31539 tree o21 = TREE_OPERAND (op0, 1);
31540 switch (TREE_CODE (o21))
31541 {
31542 case INTEGER_CST:
31543 {
31544 switch (TREE_CODE (op1))
31545 {
31546 case INTEGER_CST:
31547 {
31548 {
31549/* #line 2753 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31550 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
31551 tree res = generic_simplify_123 (loc, type, op0, op1, captures, NE_EXPR);
31552 if (res) return res;
31553 }
31554 break;
31555 }
31556 default:;
31557 }
31558 break;
31559 }
31560 default:;
31561 }
31562 break;
31563 }
31564 case BIT_XOR_EXPR:
31565 {
31566 tree o20 = TREE_OPERAND (op0, 0);
31567 tree o21 = TREE_OPERAND (op0, 1);
31568 if (integer_zerop (op1))
31569 {
31570 {
31571/* #line 2760 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31572 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
31573 tree res = generic_simplify_93 (loc, type, op0, op1, captures, NE_EXPR);
31574 if (res) return res;
31575 }
31576 }
31577 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
31578 {
31579 {
31580/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31581 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
31582 tree res = generic_simplify_94 (loc, type, op0, op1, captures, NE_EXPR);
31583 if (res) return res;
31584 }
31585 }
31586 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
31587 {
31588 {
31589/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31590 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
31591 tree res = generic_simplify_94 (loc, type, op0, op1, captures, NE_EXPR);
31592 if (res) return res;
31593 }
31594 }
31595 break;
31596 }
31597 case CALL_EXPR:
31598 switch (get_call_combined_fn (op0))
31599 {
31600 case CFN_BUILT_IN_SQRTF:
31601 {
31602 tree o20 = CALL_EXPR_ARG (op0, 0);
31603 switch (TREE_CODE (op1))
31604 {
31605 case REAL_CST:
31606 {
31607 {
31608/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31609 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31610 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
31611 if (res) return res;
31612 }
31613 break;
31614 }
31615 default:;
31616 }
31617 break;
31618 }
31619 case CFN_BUILT_IN_SQRT:
31620 {
31621 tree o20 = CALL_EXPR_ARG (op0, 0);
31622 switch (TREE_CODE (op1))
31623 {
31624 case REAL_CST:
31625 {
31626 {
31627/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31628 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31629 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
31630 if (res) return res;
31631 }
31632 break;
31633 }
31634 default:;
31635 }
31636 break;
31637 }
31638 case CFN_BUILT_IN_SQRTL:
31639 {
31640 tree o20 = CALL_EXPR_ARG (op0, 0);
31641 switch (TREE_CODE (op1))
31642 {
31643 case REAL_CST:
31644 {
31645 {
31646/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31647 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31648 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
31649 if (res) return res;
31650 }
31651 break;
31652 }
31653 default:;
31654 }
31655 break;
31656 }
31657 case CFN_SQRT:
31658 {
31659 tree o20 = CALL_EXPR_ARG (op0, 0);
31660 switch (TREE_CODE (op1))
31661 {
31662 case REAL_CST:
31663 {
31664 {
31665/* #line 2497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31666 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31667 tree res = generic_simplify_107 (loc, type, op0, op1, captures, CFN_SQRT, NE_EXPR);
31668 if (res) return res;
31669 }
31670 break;
31671 }
31672 default:;
31673 }
31674 break;
31675 }
31676 default:;
31677 }
31678 break;
31679 default:;
31680 }
31681 switch (TREE_CODE (op1))
31682 {
31683 case BIT_XOR_EXPR:
31684 {
31685 tree o30 = TREE_OPERAND (op1, 0);
31686 tree o31 = TREE_OPERAND (op1, 1);
31687 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
31688 {
31689 {
31690/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31691 tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
31692 tree res = generic_simplify_94 (loc, type, op0, op1, captures, NE_EXPR);
31693 if (res) return res;
31694 }
31695 }
31696 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
31697 {
31698 {
31699/* #line 2766 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31700 tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
31701 tree res = generic_simplify_94 (loc, type, op0, op1, captures, NE_EXPR);
31702 if (res) return res;
31703 }
31704 }
31705 break;
31706 }
31707 default:;
31708 }
31709 switch (TREE_CODE (op0))
31710 {
31711 CASE_CONVERT:
31712 {
31713 tree o20 = TREE_OPERAND (op0, 0);
31714 switch (TREE_CODE (o20))
31715 {
31716 case BIT_XOR_EXPR:
31717 {
31718 tree o30 = TREE_OPERAND (o20, 0);
31719 tree o31 = TREE_OPERAND (o20, 1);
31720 switch (TREE_CODE (o31))
31721 {
31722 case INTEGER_CST:
31723 {
31724 switch (TREE_CODE (op1))
31725 {
31726 case INTEGER_CST:
31727 {
31728 {
31729/* #line 2771 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31730 tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
31731 tree res = generic_simplify_72 (loc, type, op0, op1, captures, NE_EXPR);
31732 if (res) return res;
31733 }
31734 break;
31735 }
31736 default:;
31737 }
31738 break;
31739 }
31740 default:;
31741 }
31742 break;
31743 }
31744 case ADDR_EXPR:
31745 {
31746 switch (TREE_CODE (op1))
31747 {
31748 CASE_CONVERT:
31749 {
31750 tree o40 = TREE_OPERAND (op1, 0);
31751 switch (TREE_CODE (o40))
31752 {
31753 case ADDR_EXPR:
31754 {
31755 {
31756/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31757 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
31758 tree res = generic_simplify_155 (loc, type, op0, op1, captures, NE_EXPR);
31759 if (res) return res;
31760 }
31761 break;
31762 }
31763 default:;
31764 }
31765 break;
31766 }
31767 case ADDR_EXPR:
31768 {
31769 {
31770/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31771 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
31772 tree res = generic_simplify_155 (loc, type, op0, op1, captures, NE_EXPR);
31773 if (res) return res;
31774 }
31775 break;
31776 }
31777 default:;
31778 }
31779 if (integer_zerop (op1))
31780 {
31781 {
31782/* #line 2776 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31783 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
31784 tree res = generic_simplify_215 (loc, type, op0, op1, captures, NE_EXPR);
31785 if (res) return res;
31786 }
31787 }
31788 break;
31789 }
31790 default:;
31791 }
31792 break;
31793 }
31794 case BIT_XOR_EXPR:
31795 {
31796 tree o20 = TREE_OPERAND (op0, 0);
31797 tree o21 = TREE_OPERAND (op0, 1);
31798 switch (TREE_CODE (o21))
31799 {
31800 case INTEGER_CST:
31801 {
31802 switch (TREE_CODE (op1))
31803 {
31804 case INTEGER_CST:
31805 {
31806 {
31807/* #line 2771 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31808 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
31809 tree res = generic_simplify_72 (loc, type, op0, op1, captures, NE_EXPR);
31810 if (res) return res;
31811 }
31812 break;
31813 }
31814 default:;
31815 }
31816 break;
31817 }
31818 default:;
31819 }
31820 break;
31821 }
31822 case ADDR_EXPR:
31823 {
31824 switch (TREE_CODE (op1))
31825 {
31826 CASE_CONVERT:
31827 {
31828 tree o30 = TREE_OPERAND (op1, 0);
31829 switch (TREE_CODE (o30))
31830 {
31831 case ADDR_EXPR:
31832 {
31833 {
31834/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31835 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
31836 tree res = generic_simplify_49 (loc, type, op0, op1, captures, NE_EXPR);
31837 if (res) return res;
31838 }
31839 break;
31840 }
31841 default:;
31842 }
31843 break;
31844 }
31845 case ADDR_EXPR:
31846 {
31847 {
31848/* #line 2844 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31849 tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
31850 tree res = generic_simplify_49 (loc, type, op0, op1, captures, NE_EXPR);
31851 if (res) return res;
31852 }
31853 break;
31854 }
31855 default:;
31856 }
31857 if (integer_zerop (op1))
31858 {
31859 {
31860/* #line 2776 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31861 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
31862 tree res = generic_simplify_215 (loc, type, op0, op1, captures, NE_EXPR);
31863 if (res) return res;
31864 }
31865 }
31866 break;
31867 }
31868 case BIT_AND_EXPR:
31869 {
31870 tree o20 = TREE_OPERAND (op0, 0);
31871 tree o21 = TREE_OPERAND (op0, 1);
31872 if (integer_pow2p (o21))
31873 {
31874 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
31875 {
31876 {
31877/* #line 2785 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31878 tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
31879 tree res = generic_simplify_98 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
31880 if (res) return res;
31881 }
31882 }
31883 }
31884 switch (TREE_CODE (o20))
31885 {
31886 CASE_CONVERT:
31887 {
31888 tree o30 = TREE_OPERAND (o20, 0);
31889 if (integer_pow2p (o21))
31890 {
31891 if (integer_zerop (op1))
31892 {
31893 {
31894/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31895 tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
31896 tree res = generic_simplify_19 (loc, type, op0, op1, captures, NE_EXPR, LT_EXPR);
31897 if (res) return res;
31898 }
31899 }
31900 }
31901 break;
31902 }
31903 default:;
31904 }
31905 if (integer_pow2p (o21))
31906 {
31907 if (integer_zerop (op1))
31908 {
31909 {
31910/* #line 2810 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31911 tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
31912 tree res = generic_simplify_90 (loc, type, op0, op1, captures, NE_EXPR, LT_EXPR);
31913 if (res) return res;
31914 }
31915 }
31916 }
31917 break;
31918 }
31919 default:;
31920 }
31921 {
31922/* #line 2919 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31923 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
31924 tree res = generic_simplify_206 (loc, type, op0, op1, captures, NE_EXPR);
31925 if (res) return res;
31926 }
31927 switch (TREE_CODE (op0))
31928 {
31929 CASE_CONVERT:
31930 {
31931 tree o20 = TREE_OPERAND (op0, 0);
31932 switch (TREE_CODE (op1))
31933 {
31934 case INTEGER_CST:
31935 {
31936 {
31937/* #line 2932 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31938 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
31939 tree res = generic_simplify_181 (loc, type, op0, op1, captures, NE_EXPR);
31940 if (res) return res;
31941 }
31942 break;
31943 }
31944 default:;
31945 }
31946 break;
31947 }
31948 default:;
31949 }
31950 if (integer_zerop (op1))
31951 {
31952 {
31953/* #line 3019 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31954 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
31955/* #line 3019 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31956 if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
31957 {
31958 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
31959 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3021, %s:%d\n", __FILE__, __LINE__);
31960 tree res_op0;
31961 res_op0 = captures[0];
31962 tree res;
31963 res = non_lvalue_loc (loc, res_op0);
31964 return res;
31965 }
31966 }
31967 }
31968 switch (TREE_CODE (op0))
31969 {
31970 case PLUS_EXPR:
31971 {
31972 tree o20 = TREE_OPERAND (op0, 0);
31973 tree o21 = TREE_OPERAND (op0, 1);
31974 switch (TREE_CODE (o21))
31975 {
31976 case INTEGER_CST:
31977 {
31978 switch (TREE_CODE (op1))
31979 {
31980 case INTEGER_CST:
31981 {
31982 {
31983/* #line 3705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
31984 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
31985 tree res = generic_simplify_64 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
31986 if (res) return res;
31987 }
31988 break;
31989 }
31990 default:;
31991 }
31992 break;
31993 }
31994 default:;
31995 }
31996 break;
31997 }
31998 case MINUS_EXPR:
31999 {
32000 tree o20 = TREE_OPERAND (op0, 0);
32001 tree o21 = TREE_OPERAND (op0, 1);
32002 switch (TREE_CODE (o21))
32003 {
32004 case INTEGER_CST:
32005 {
32006 switch (TREE_CODE (op1))
32007 {
32008 case INTEGER_CST:
32009 {
32010 {
32011/* #line 3705 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32012 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
32013 tree res = generic_simplify_64 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
32014 if (res) return res;
32015 }
32016 break;
32017 }
32018 default:;
32019 }
32020 break;
32021 }
32022 default:;
32023 }
32024 break;
32025 }
32026 default:;
32027 }
32028 return NULL_TREE;
32029}
32030
32031static tree
32032generic_simplify_MIN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
32033{
32034 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
32035 {
32036 {
32037/* #line 1343 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32038 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32039 tree res = generic_simplify_223 (loc, type, op0, op1, captures);
32040 if (res) return res;
32041 }
32042 }
32043 switch (TREE_CODE (op0))
32044 {
32045 case MAX_EXPR:
32046 {
32047 tree o20 = TREE_OPERAND (op0, 0);
32048 tree o21 = TREE_OPERAND (op0, 1);
32049 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
32050 {
32051 {
32052/* #line 1347 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32053 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
32054 tree res = generic_simplify_56 (loc, type, op0, op1, captures);
32055 if (res) return res;
32056 }
32057 }
32058 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32059 {
32060 {
32061/* #line 1347 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32062 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
32063 tree res = generic_simplify_56 (loc, type, op0, op1, captures);
32064 if (res) return res;
32065 }
32066 }
32067 break;
32068 }
32069 default:;
32070 }
32071 switch (TREE_CODE (op1))
32072 {
32073 case MAX_EXPR:
32074 {
32075 tree o30 = TREE_OPERAND (op1, 0);
32076 tree o31 = TREE_OPERAND (op1, 1);
32077 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
32078 {
32079 {
32080/* #line 1347 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32081 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
32082 tree res = generic_simplify_56 (loc, type, op0, op1, captures);
32083 if (res) return res;
32084 }
32085 }
32086 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32087 {
32088 {
32089/* #line 1347 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32090 tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
32091 tree res = generic_simplify_56 (loc, type, op0, op1, captures);
32092 if (res) return res;
32093 }
32094 }
32095 break;
32096 }
32097 case NEGATE_EXPR:
32098 {
32099 tree o30 = TREE_OPERAND (op1, 0);
32100 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32101 {
32102 {
32103/* #line 1362 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32104 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32105 tree res = generic_simplify_42 (loc, type, op0, op1, captures);
32106 if (res) return res;
32107 }
32108 }
32109 break;
32110 }
32111 default:;
32112 }
32113 switch (TREE_CODE (op0))
32114 {
32115 case NEGATE_EXPR:
32116 {
32117 tree o20 = TREE_OPERAND (op0, 0);
32118 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32119 {
32120 {
32121/* #line 1362 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32122 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
32123 tree res = generic_simplify_42 (loc, type, op0, op1, captures);
32124 if (res) return res;
32125 }
32126 }
32127 break;
32128 }
32129 default:;
32130 }
32131 {
32132/* #line 1369 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32133 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32134/* #line 1369 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32135 if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
32136 {
32137 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1372, %s:%d\n", __FILE__, __LINE__);
32138 tree res;
32139 res = captures[1];
32140 if (TREE_SIDE_EFFECTS (captures[0]))
32141 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
32142 return res;
32143 }
32144 else
32145 {
32146/* #line 1373 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32147 if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
32148 {
32149 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1376, %s:%d\n", __FILE__, __LINE__);
32150 tree res;
32151 res = captures[0];
32152 if (TREE_SIDE_EFFECTS (captures[1]))
32153 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
32154 return res;
32155 }
32156 }
32157 }
32158 switch (TREE_CODE (op1))
32159 {
32160 case PLUS_EXPR:
32161 {
32162 tree o30 = TREE_OPERAND (op1, 0);
32163 tree o31 = TREE_OPERAND (op1, 1);
32164 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32165 {
32166 switch (TREE_CODE (o31))
32167 {
32168 case INTEGER_CST:
32169 {
32170 {
32171/* #line 1402 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32172 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
32173/* #line 1402 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32174 if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
32175 {
32176/* #line 1403 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32177 if (tree_int_cst_sgn (captures[2]) > 0)
32178 {
32179 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1404, %s:%d\n", __FILE__, __LINE__);
32180 tree res;
32181 res = captures[0];
32182 if (TREE_SIDE_EFFECTS (captures[2]))
32183 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
32184 return res;
32185 }
32186 else
32187 {
32188 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
32189 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1405, %s:%d\n", __FILE__, __LINE__);
32190 tree res;
32191 res = captures[1];
32192 return res;
32193 }
32194 }
32195 }
32196 break;
32197 }
32198 default:;
32199 }
32200 }
32201 break;
32202 }
32203 default:;
32204 }
32205 switch (TREE_CODE (op0))
32206 {
32207 case PLUS_EXPR:
32208 {
32209 tree o20 = TREE_OPERAND (op0, 0);
32210 tree o21 = TREE_OPERAND (op0, 1);
32211 switch (TREE_CODE (o21))
32212 {
32213 case INTEGER_CST:
32214 {
32215 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32216 {
32217 {
32218/* #line 1402 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32219 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
32220/* #line 1402 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32221 if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
32222 {
32223/* #line 1403 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32224 if (tree_int_cst_sgn (captures[2]) > 0)
32225 {
32226 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1404, %s:%d\n", __FILE__, __LINE__);
32227 tree res;
32228 res = captures[0];
32229 if (TREE_SIDE_EFFECTS (captures[2]))
32230 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
32231 return res;
32232 }
32233 else
32234 {
32235 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
32236 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1405, %s:%d\n", __FILE__, __LINE__);
32237 tree res;
32238 res = captures[1];
32239 return res;
32240 }
32241 }
32242 }
32243 }
32244 break;
32245 }
32246 default:;
32247 }
32248 break;
32249 }
32250 case NEGATE_EXPR:
32251 {
32252 tree o20 = TREE_OPERAND (op0, 0);
32253 switch (TREE_CODE (op1))
32254 {
32255 case NEGATE_EXPR:
32256 {
32257 tree o40 = TREE_OPERAND (op1, 0);
32258 {
32259/* #line 1443 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32260 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
32261/* #line 1443 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32262 if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
32263 {
32264 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__);
32265 tree res_op0;
32266 {
32267 tree ops1[2], res;
32268 ops1[0] = captures[1];
32269 ops1[1] = captures[3];
32270 res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
32271 res_op0 = res;
32272 }
32273 tree res;
32274 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
32275 return res;
32276 }
32277 }
32278 break;
32279 }
32280 default:;
32281 }
32282 break;
32283 }
32284 case BIT_NOT_EXPR:
32285 {
32286 tree o20 = TREE_OPERAND (op0, 0);
32287 switch (TREE_CODE (op1))
32288 {
32289 case BIT_NOT_EXPR:
32290 {
32291 tree o40 = TREE_OPERAND (op1, 0);
32292 {
32293/* #line 1453 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32294 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
32295 tree res = generic_simplify_8 (loc, type, op0, op1, captures, MIN_EXPR, MAX_EXPR);
32296 if (res) return res;
32297 }
32298 break;
32299 }
32300 default:;
32301 }
32302 break;
32303 }
32304 default:;
32305 }
32306 return NULL_TREE;
32307}
32308
32309static tree
32310generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
32311{
32312 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
32313 {
32314 {
32315/* #line 1343 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32316 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32317 tree res = generic_simplify_223 (loc, type, op0, op1, captures);
32318 if (res) return res;
32319 }
32320 }
32321 switch (TREE_CODE (op0))
32322 {
32323 case MIN_EXPR:
32324 {
32325 tree o20 = TREE_OPERAND (op0, 0);
32326 tree o21 = TREE_OPERAND (op0, 1);
32327 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
32328 {
32329 {
32330/* #line 1351 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32331 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
32332 tree res = generic_simplify_120 (loc, type, op0, op1, captures);
32333 if (res) return res;
32334 }
32335 }
32336 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32337 {
32338 {
32339/* #line 1351 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32340 tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
32341 tree res = generic_simplify_120 (loc, type, op0, op1, captures);
32342 if (res) return res;
32343 }
32344 }
32345 break;
32346 }
32347 default:;
32348 }
32349 switch (TREE_CODE (op1))
32350 {
32351 case MIN_EXPR:
32352 {
32353 tree o30 = TREE_OPERAND (op1, 0);
32354 tree o31 = TREE_OPERAND (op1, 1);
32355 if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
32356 {
32357 {
32358/* #line 1351 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32359 tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
32360 tree res = generic_simplify_120 (loc, type, op0, op1, captures);
32361 if (res) return res;
32362 }
32363 }
32364 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32365 {
32366 {
32367/* #line 1351 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32368 tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
32369 tree res = generic_simplify_120 (loc, type, op0, op1, captures);
32370 if (res) return res;
32371 }
32372 }
32373 break;
32374 }
32375 case NEGATE_EXPR:
32376 {
32377 tree o30 = TREE_OPERAND (op1, 0);
32378 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32379 {
32380 {
32381/* #line 1355 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32382 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32383 tree res = generic_simplify_182 (loc, type, op0, op1, captures);
32384 if (res) return res;
32385 }
32386 }
32387 break;
32388 }
32389 default:;
32390 }
32391 switch (TREE_CODE (op0))
32392 {
32393 case NEGATE_EXPR:
32394 {
32395 tree o20 = TREE_OPERAND (op0, 0);
32396 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32397 {
32398 {
32399/* #line 1355 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32400 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
32401 tree res = generic_simplify_182 (loc, type, op0, op1, captures);
32402 if (res) return res;
32403 }
32404 }
32405 break;
32406 }
32407 default:;
32408 }
32409 {
32410/* #line 1380 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32411 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32412/* #line 1380 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32413 if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
32414 {
32415 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1383, %s:%d\n", __FILE__, __LINE__);
32416 tree res;
32417 res = captures[1];
32418 if (TREE_SIDE_EFFECTS (captures[0]))
32419 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
32420 return res;
32421 }
32422 else
32423 {
32424/* #line 1384 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32425 if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
32426 {
32427 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1387, %s:%d\n", __FILE__, __LINE__);
32428 tree res;
32429 res = captures[0];
32430 if (TREE_SIDE_EFFECTS (captures[1]))
32431 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
32432 return res;
32433 }
32434 }
32435 }
32436 switch (TREE_CODE (op1))
32437 {
32438 case PLUS_EXPR:
32439 {
32440 tree o30 = TREE_OPERAND (op1, 0);
32441 tree o31 = TREE_OPERAND (op1, 1);
32442 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
32443 {
32444 switch (TREE_CODE (o31))
32445 {
32446 case INTEGER_CST:
32447 {
32448 {
32449/* #line 1393 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32450 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
32451/* #line 1393 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32452 if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
32453 {
32454/* #line 1394 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32455 if (tree_int_cst_sgn (captures[2]) > 0)
32456 {
32457 if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
32458 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1395, %s:%d\n", __FILE__, __LINE__);
32459 tree res;
32460 res = captures[1];
32461 return res;
32462 }
32463 else
32464 {
32465 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1396, %s:%d\n", __FILE__, __LINE__);
32466 tree res;
32467 res = captures[0];
32468 if (TREE_SIDE_EFFECTS (captures[2]))
32469 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
32470 return res;
32471 }
32472 }
32473 }
32474 break;
32475 }
32476 default:;
32477 }
32478 }
32479 break;
32480 }
32481 default:;
32482 }
32483 switch (TREE_CODE (op0))
32484 {
32485 case PLUS_EXPR:
32486 {
32487 tree o20 = TREE_OPERAND (op0, 0);
32488 tree o21 = TREE_OPERAND (op0, 1);
32489 switch (TREE_CODE (o21))
32490 {
32491 case INTEGER_CST:
32492 {
32493 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
32494 {
32495 {
32496/* #line 1393 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32497 tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
32498/* #line 1393 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32499 if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
32500 {
32501/* #line 1394 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32502 if (tree_int_cst_sgn (captures[2]) > 0)
32503 {
32504 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
32505 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1395, %s:%d\n", __FILE__, __LINE__);
32506 tree res;
32507 res = captures[1];
32508 return res;
32509 }
32510 else
32511 {
32512 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1396, %s:%d\n", __FILE__, __LINE__);
32513 tree res;
32514 res = captures[0];
32515 if (TREE_SIDE_EFFECTS (captures[2]))
32516 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
32517 return res;
32518 }
32519 }
32520 }
32521 }
32522 break;
32523 }
32524 default:;
32525 }
32526 break;
32527 }
32528 case NEGATE_EXPR:
32529 {
32530 tree o20 = TREE_OPERAND (op0, 0);
32531 switch (TREE_CODE (op1))
32532 {
32533 case NEGATE_EXPR:
32534 {
32535 tree o40 = TREE_OPERAND (op1, 0);
32536 {
32537/* #line 1443 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32538 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
32539/* #line 1443 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32540 if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
32541 {
32542 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__);
32543 tree res_op0;
32544 {
32545 tree ops1[2], res;
32546 ops1[0] = captures[1];
32547 ops1[1] = captures[3];
32548 res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
32549 res_op0 = res;
32550 }
32551 tree res;
32552 res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
32553 return res;
32554 }
32555 }
32556 break;
32557 }
32558 default:;
32559 }
32560 break;
32561 }
32562 case BIT_NOT_EXPR:
32563 {
32564 tree o20 = TREE_OPERAND (op0, 0);
32565 switch (TREE_CODE (op1))
32566 {
32567 case BIT_NOT_EXPR:
32568 {
32569 tree o40 = TREE_OPERAND (op1, 0);
32570 {
32571/* #line 1453 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32572 tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
32573 tree res = generic_simplify_8 (loc, type, op0, op1, captures, MAX_EXPR, MIN_EXPR);
32574 if (res) return res;
32575 }
32576 break;
32577 }
32578 default:;
32579 }
32580 break;
32581 }
32582 default:;
32583 }
32584 return NULL_TREE;
32585}
32586
32587static tree
32588generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
32589{
32590 if (integer_all_onesp (op0))
32591 {
32592 {
32593/* #line 1492 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32594 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32595 tree res = generic_simplify_85 (loc, type, op0, op1, captures, LROTATE_EXPR);
32596 if (res) return res;
32597 }
32598 }
32599 if (integer_zerop (op1))
32600 {
32601 {
32602/* #line 1518 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32603 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32604 tree res = generic_simplify_6 (loc, type, op0, op1, captures, LROTATE_EXPR);
32605 if (res) return res;
32606 }
32607 }
32608 if (integer_zerop (op0))
32609 {
32610 {
32611/* #line 1521 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32612 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32613 tree res = generic_simplify_39 (loc, type, op0, op1, captures, LROTATE_EXPR);
32614 if (res) return res;
32615 }
32616 }
32617 switch (TREE_CODE (op1))
32618 {
32619 case VECTOR_CST:
32620 {
32621 {
32622/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32623 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32624 tree res = generic_simplify_195 (loc, type, op0, op1, captures, LROTATE_EXPR);
32625 if (res) return res;
32626 }
32627 break;
32628 }
32629 case CONSTRUCTOR:
32630 {
32631 {
32632/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32633 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32634 tree res = generic_simplify_46 (loc, type, op0, op1, captures, LROTATE_EXPR);
32635 if (res) return res;
32636 }
32637 break;
32638 }
32639 case INTEGER_CST:
32640 {
32641 {
32642/* #line 1550 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32643 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32644 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
32645 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1550, %s:%d\n", __FILE__, __LINE__);
32646 tree res_op0;
32647 res_op0 = captures[0];
32648 tree res_op1;
32649 res_op1 = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), build_int_cst (TREE_TYPE (captures[1]), element_precision (type)), captures[1]);
32650 tree res;
32651 res = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
32652 return res;
32653 }
32654 break;
32655 }
32656 default:;
32657 }
32658 switch (TREE_CODE (op0))
32659 {
32660 case LROTATE_EXPR:
32661 {
32662 tree o20 = TREE_OPERAND (op0, 0);
32663 tree o21 = TREE_OPERAND (op0, 1);
32664 switch (TREE_CODE (o21))
32665 {
32666 case INTEGER_CST:
32667 {
32668 switch (TREE_CODE (op1))
32669 {
32670 case INTEGER_CST:
32671 {
32672 {
32673/* #line 1558 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32674 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
32675 tree res = generic_simplify_118 (loc, type, op0, op1, captures, LROTATE_EXPR);
32676 if (res) return res;
32677 }
32678 break;
32679 }
32680 default:;
32681 }
32682 break;
32683 }
32684 default:;
32685 }
32686 break;
32687 }
32688 default:;
32689 }
32690 return NULL_TREE;
32691}
32692
32693static tree
32694generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
32695{
32696 if (integer_all_onesp (op0))
32697 {
32698 {
32699/* #line 1492 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32700 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32701 tree res = generic_simplify_85 (loc, type, op0, op1, captures, RROTATE_EXPR);
32702 if (res) return res;
32703 }
32704 }
32705 if (integer_zerop (op1))
32706 {
32707 {
32708/* #line 1518 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32709 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32710 tree res = generic_simplify_6 (loc, type, op0, op1, captures, RROTATE_EXPR);
32711 if (res) return res;
32712 }
32713 }
32714 if (integer_zerop (op0))
32715 {
32716 {
32717/* #line 1521 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32718 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32719 tree res = generic_simplify_39 (loc, type, op0, op1, captures, RROTATE_EXPR);
32720 if (res) return res;
32721 }
32722 }
32723 switch (TREE_CODE (op1))
32724 {
32725 case VECTOR_CST:
32726 {
32727 {
32728/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32729 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32730 tree res = generic_simplify_195 (loc, type, op0, op1, captures, RROTATE_EXPR);
32731 if (res) return res;
32732 }
32733 break;
32734 }
32735 case CONSTRUCTOR:
32736 {
32737 {
32738/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32739 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32740 tree res = generic_simplify_46 (loc, type, op0, op1, captures, RROTATE_EXPR);
32741 if (res) return res;
32742 }
32743 break;
32744 }
32745 default:;
32746 }
32747 switch (TREE_CODE (op0))
32748 {
32749 case RROTATE_EXPR:
32750 {
32751 tree o20 = TREE_OPERAND (op0, 0);
32752 tree o21 = TREE_OPERAND (op0, 1);
32753 switch (TREE_CODE (o21))
32754 {
32755 case INTEGER_CST:
32756 {
32757 switch (TREE_CODE (op1))
32758 {
32759 case INTEGER_CST:
32760 {
32761 {
32762/* #line 1558 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32763 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
32764 tree res = generic_simplify_118 (loc, type, op0, op1, captures, RROTATE_EXPR);
32765 if (res) return res;
32766 }
32767 break;
32768 }
32769 default:;
32770 }
32771 break;
32772 }
32773 default:;
32774 }
32775 break;
32776 }
32777 default:;
32778 }
32779 return NULL_TREE;
32780}
32781
32782static tree
32783generic_simplify_RSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
32784{
32785 switch (TREE_CODE (op0))
32786 {
32787 case LSHIFT_EXPR:
32788 {
32789 tree o20 = TREE_OPERAND (op0, 0);
32790 tree o21 = TREE_OPERAND (op0, 1);
32791 switch (TREE_CODE (o21))
32792 {
32793 case INTEGER_CST:
32794 {
32795 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
32796 {
32797 {
32798/* #line 1511 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32799 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
32800/* #line 1511 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32801 if (TYPE_UNSIGNED (type) && (wi::ltu_p (captures[1], element_precision (type))))
32802 {
32803 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1513, %s:%d\n", __FILE__, __LINE__);
32804 tree res_op0;
32805 res_op0 = captures[0];
32806 tree res_op1;
32807 {
32808 tree ops1[2], res;
32809 ops1[0] = build_minus_one_cst (type);
32810 ops1[1] = captures[1];
32811 res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
32812 res_op1 = res;
32813 }
32814 tree res;
32815 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
32816 return res;
32817 }
32818 }
32819 }
32820 break;
32821 }
32822 default:;
32823 }
32824 break;
32825 }
32826 default:;
32827 }
32828if (integer_all_onesp (op0))
32829 {
32830 {
32831/* #line 1497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32832 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32833/* #line 1497 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32834 if (!TYPE_UNSIGNED (type) && tree_expr_nonnegative_p (captures[1]))
32835 {
32836 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1499, %s:%d\n", __FILE__, __LINE__);
32837 tree res;
32838 res = captures[0];
32839 if (TREE_SIDE_EFFECTS (captures[1]))
32840 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
32841 return res;
32842 }
32843 }
32844 }
32845 if (integer_zerop (op1))
32846 {
32847 {
32848/* #line 1518 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32849 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
32850 tree res = generic_simplify_6 (loc, type, op0, op1, captures, RSHIFT_EXPR);
32851 if (res) return res;
32852 }
32853 }
32854 if (integer_zerop (op0))
32855 {
32856 {
32857/* #line 1521 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32858 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32859 tree res = generic_simplify_39 (loc, type, op0, op1, captures, RSHIFT_EXPR);
32860 if (res) return res;
32861 }
32862 }
32863 switch (TREE_CODE (op1))
32864 {
32865 case VECTOR_CST:
32866 {
32867 {
32868/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32869 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32870 tree res = generic_simplify_195 (loc, type, op0, op1, captures, RSHIFT_EXPR);
32871 if (res) return res;
32872 }
32873 break;
32874 }
32875 case CONSTRUCTOR:
32876 {
32877 {
32878/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32879 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
32880 tree res = generic_simplify_46 (loc, type, op0, op1, captures, RSHIFT_EXPR);
32881 if (res) return res;
32882 }
32883 break;
32884 }
32885 default:;
32886 }
32887 switch (TREE_CODE (op0))
32888 {
32889 case RSHIFT_EXPR:
32890 {
32891 tree o20 = TREE_OPERAND (op0, 0);
32892 tree o21 = TREE_OPERAND (op0, 1);
32893 switch (TREE_CODE (o21))
32894 {
32895 case INTEGER_CST:
32896 {
32897 switch (TREE_CODE (op1))
32898 {
32899 case INTEGER_CST:
32900 {
32901 {
32902/* #line 1558 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32903 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
32904 tree res = generic_simplify_118 (loc, type, op0, op1, captures, RSHIFT_EXPR);
32905 if (res) return res;
32906 }
32907 break;
32908 }
32909 default:;
32910 }
32911 break;
32912 }
32913 default:;
32914 }
32915 break;
32916 }
32917 CASE_CONVERT:
32918 {
32919 tree o20 = TREE_OPERAND (op0, 0);
32920 switch (TREE_CODE (o20))
32921 {
32922 case BIT_AND_EXPR:
32923 {
32924 tree o30 = TREE_OPERAND (o20, 0);
32925 tree o31 = TREE_OPERAND (o20, 1);
32926 switch (TREE_CODE (o31))
32927 {
32928 case INTEGER_CST:
32929 {
32930 switch (TREE_CODE (op1))
32931 {
32932 case INTEGER_CST:
32933 {
32934 {
32935/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32936 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
32937 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
32938 if (res) return res;
32939 }
32940 break;
32941 }
32942 default:;
32943 }
32944 break;
32945 }
32946 default:;
32947 }
32948 break;
32949 }
32950 case BIT_XOR_EXPR:
32951 {
32952 tree o30 = TREE_OPERAND (o20, 0);
32953 tree o31 = TREE_OPERAND (o20, 1);
32954 switch (TREE_CODE (o31))
32955 {
32956 case INTEGER_CST:
32957 {
32958 switch (TREE_CODE (op1))
32959 {
32960 case INTEGER_CST:
32961 {
32962 {
32963/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32964 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
32965 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
32966 if (res) return res;
32967 }
32968 break;
32969 }
32970 default:;
32971 }
32972 break;
32973 }
32974 default:;
32975 }
32976 break;
32977 }
32978 case BIT_IOR_EXPR:
32979 {
32980 tree o30 = TREE_OPERAND (o20, 0);
32981 tree o31 = TREE_OPERAND (o20, 1);
32982 switch (TREE_CODE (o31))
32983 {
32984 case INTEGER_CST:
32985 {
32986 switch (TREE_CODE (op1))
32987 {
32988 case INTEGER_CST:
32989 {
32990 {
32991/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
32992 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
32993 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
32994 if (res) return res;
32995 }
32996 break;
32997 }
32998 default:;
32999 }
33000 break;
33001 }
33002 default:;
33003 }
33004 break;
33005 }
33006 default:;
33007 }
33008 break;
33009 }
33010 case BIT_AND_EXPR:
33011 {
33012 tree o20 = TREE_OPERAND (op0, 0);
33013 tree o21 = TREE_OPERAND (op0, 1);
33014 switch (TREE_CODE (o21))
33015 {
33016 case INTEGER_CST:
33017 {
33018 switch (TREE_CODE (op1))
33019 {
33020 case INTEGER_CST:
33021 {
33022 {
33023/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33024 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33025 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
33026 if (res) return res;
33027 }
33028 break;
33029 }
33030 default:;
33031 }
33032 break;
33033 }
33034 default:;
33035 }
33036 break;
33037 }
33038 case BIT_XOR_EXPR:
33039 {
33040 tree o20 = TREE_OPERAND (op0, 0);
33041 tree o21 = TREE_OPERAND (op0, 1);
33042 switch (TREE_CODE (o21))
33043 {
33044 case INTEGER_CST:
33045 {
33046 switch (TREE_CODE (op1))
33047 {
33048 case INTEGER_CST:
33049 {
33050 {
33051/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33052 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33053 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
33054 if (res) return res;
33055 }
33056 break;
33057 }
33058 default:;
33059 }
33060 break;
33061 }
33062 default:;
33063 }
33064 break;
33065 }
33066 case BIT_IOR_EXPR:
33067 {
33068 tree o20 = TREE_OPERAND (op0, 0);
33069 tree o21 = TREE_OPERAND (op0, 1);
33070 switch (TREE_CODE (o21))
33071 {
33072 case INTEGER_CST:
33073 {
33074 switch (TREE_CODE (op1))
33075 {
33076 case INTEGER_CST:
33077 {
33078 {
33079/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33080 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33081 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
33082 if (res) return res;
33083 }
33084 break;
33085 }
33086 default:;
33087 }
33088 break;
33089 }
33090 default:;
33091 }
33092 break;
33093 }
33094 default:;
33095 }
33096 return NULL_TREE;
33097}
33098
33099static tree
33100generic_simplify_LSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33101{
33102 switch (TREE_CODE (op0))
33103 {
33104 case RSHIFT_EXPR:
33105 {
33106 tree o20 = TREE_OPERAND (op0, 0);
33107 tree o21 = TREE_OPERAND (op0, 1);
33108 switch (TREE_CODE (o21))
33109 {
33110 case INTEGER_CST:
33111 {
33112 if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
33113 {
33114 {
33115/* #line 1504 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33116 tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
33117/* #line 1504 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33118 if (wi::ltu_p (captures[1], element_precision (type)))
33119 {
33120 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1505, %s:%d\n", __FILE__, __LINE__);
33121 tree res_op0;
33122 res_op0 = captures[0];
33123 tree res_op1;
33124 {
33125 tree ops1[2], res;
33126 ops1[0] = build_minus_one_cst (type);
33127 ops1[1] = captures[1];
33128 res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
33129 res_op1 = res;
33130 }
33131 tree res;
33132 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
33133 return res;
33134 }
33135 }
33136 }
33137 break;
33138 }
33139 default:;
33140 }
33141 break;
33142 }
33143 default:;
33144 }
33145 if (integer_zerop (op1))
33146 {
33147 {
33148/* #line 1518 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33149 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33150 tree res = generic_simplify_6 (loc, type, op0, op1, captures, LSHIFT_EXPR);
33151 if (res) return res;
33152 }
33153 }
33154 if (integer_zerop (op0))
33155 {
33156 {
33157/* #line 1521 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33158 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33159 tree res = generic_simplify_39 (loc, type, op0, op1, captures, LSHIFT_EXPR);
33160 if (res) return res;
33161 }
33162 }
33163 switch (TREE_CODE (op1))
33164 {
33165 case VECTOR_CST:
33166 {
33167 {
33168/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33169 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33170 tree res = generic_simplify_195 (loc, type, op0, op1, captures, LSHIFT_EXPR);
33171 if (res) return res;
33172 }
33173 break;
33174 }
33175 case CONSTRUCTOR:
33176 {
33177 {
33178/* #line 1527 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33179 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33180 tree res = generic_simplify_46 (loc, type, op0, op1, captures, LSHIFT_EXPR);
33181 if (res) return res;
33182 }
33183 break;
33184 }
33185 default:;
33186 }
33187 switch (TREE_CODE (op0))
33188 {
33189 case LSHIFT_EXPR:
33190 {
33191 tree o20 = TREE_OPERAND (op0, 0);
33192 tree o21 = TREE_OPERAND (op0, 1);
33193 switch (TREE_CODE (o21))
33194 {
33195 case INTEGER_CST:
33196 {
33197 switch (TREE_CODE (op1))
33198 {
33199 case INTEGER_CST:
33200 {
33201 {
33202/* #line 1558 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33203 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
33204 tree res = generic_simplify_118 (loc, type, op0, op1, captures, LSHIFT_EXPR);
33205 if (res) return res;
33206 }
33207 break;
33208 }
33209 default:;
33210 }
33211 break;
33212 }
33213 default:;
33214 }
33215 break;
33216 }
33217 CASE_CONVERT:
33218 {
33219 tree o20 = TREE_OPERAND (op0, 0);
33220 switch (TREE_CODE (o20))
33221 {
33222 case BIT_AND_EXPR:
33223 {
33224 tree o30 = TREE_OPERAND (o20, 0);
33225 tree o31 = TREE_OPERAND (o20, 1);
33226 switch (TREE_CODE (o31))
33227 {
33228 case INTEGER_CST:
33229 {
33230 switch (TREE_CODE (op1))
33231 {
33232 case INTEGER_CST:
33233 {
33234 {
33235/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33236 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
33237 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
33238 if (res) return res;
33239 }
33240 break;
33241 }
33242 default:;
33243 }
33244 break;
33245 }
33246 default:;
33247 }
33248 break;
33249 }
33250 case BIT_XOR_EXPR:
33251 {
33252 tree o30 = TREE_OPERAND (o20, 0);
33253 tree o31 = TREE_OPERAND (o20, 1);
33254 switch (TREE_CODE (o31))
33255 {
33256 case INTEGER_CST:
33257 {
33258 switch (TREE_CODE (op1))
33259 {
33260 case INTEGER_CST:
33261 {
33262 {
33263/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33264 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
33265 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
33266 if (res) return res;
33267 }
33268 break;
33269 }
33270 default:;
33271 }
33272 break;
33273 }
33274 default:;
33275 }
33276 break;
33277 }
33278 case BIT_IOR_EXPR:
33279 {
33280 tree o30 = TREE_OPERAND (o20, 0);
33281 tree o31 = TREE_OPERAND (o20, 1);
33282 switch (TREE_CODE (o31))
33283 {
33284 case INTEGER_CST:
33285 {
33286 switch (TREE_CODE (op1))
33287 {
33288 case INTEGER_CST:
33289 {
33290 {
33291/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33292 tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
33293 tree res = generic_simplify_5 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
33294 if (res) return res;
33295 }
33296 break;
33297 }
33298 default:;
33299 }
33300 break;
33301 }
33302 default:;
33303 }
33304 break;
33305 }
33306 default:;
33307 }
33308 break;
33309 }
33310 case BIT_AND_EXPR:
33311 {
33312 tree o20 = TREE_OPERAND (op0, 0);
33313 tree o21 = TREE_OPERAND (op0, 1);
33314 switch (TREE_CODE (o21))
33315 {
33316 case INTEGER_CST:
33317 {
33318 switch (TREE_CODE (op1))
33319 {
33320 case INTEGER_CST:
33321 {
33322 {
33323/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33324 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33325 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
33326 if (res) return res;
33327 }
33328 break;
33329 }
33330 default:;
33331 }
33332 break;
33333 }
33334 default:;
33335 }
33336 break;
33337 }
33338 case BIT_XOR_EXPR:
33339 {
33340 tree o20 = TREE_OPERAND (op0, 0);
33341 tree o21 = TREE_OPERAND (op0, 1);
33342 switch (TREE_CODE (o21))
33343 {
33344 case INTEGER_CST:
33345 {
33346 switch (TREE_CODE (op1))
33347 {
33348 case INTEGER_CST:
33349 {
33350 {
33351/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33352 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33353 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
33354 if (res) return res;
33355 }
33356 break;
33357 }
33358 default:;
33359 }
33360 break;
33361 }
33362 default:;
33363 }
33364 break;
33365 }
33366 case BIT_IOR_EXPR:
33367 {
33368 tree o20 = TREE_OPERAND (op0, 0);
33369 tree o21 = TREE_OPERAND (op0, 1);
33370 switch (TREE_CODE (o21))
33371 {
33372 case INTEGER_CST:
33373 {
33374 switch (TREE_CODE (op1))
33375 {
33376 case INTEGER_CST:
33377 {
33378 {
33379/* #line 1694 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33380 tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
33381 tree res = generic_simplify_84 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
33382 if (res) return res;
33383 }
33384 break;
33385 }
33386 default:;
33387 }
33388 break;
33389 }
33390 default:;
33391 }
33392 break;
33393 }
33394 default:;
33395 }
33396 return NULL_TREE;
33397}
33398
33399static tree
33400generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33401{
33402 switch (TREE_CODE (op0))
33403 {
33404 case REALPART_EXPR:
33405 {
33406 tree o20 = TREE_OPERAND (op0, 0);
33407 switch (TREE_CODE (op1))
33408 {
33409 case IMAGPART_EXPR:
33410 {
33411 tree o40 = TREE_OPERAND (op1, 0);
33412 if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
33413 {
33414 {
33415/* #line 1932 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33416 tree captures[1] ATTRIBUTE_UNUSED = { o20 };
33417 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1932, %s:%d\n", __FILE__, __LINE__);
33418 tree res;
33419 res = captures[0];
33420 return res;
33421 }
33422 }
33423 break;
33424 }
33425 default:;
33426 }
33427 break;
33428 }
33429 default:;
33430 }
33431 return NULL_TREE;
33432}
33433
33434static tree
33435generic_simplify_UNLE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33436{
33437 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33438 {
33439 {
33440/* #line 2356 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33441 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33442 tree res = generic_simplify_141 (loc, type, op0, op1, captures, UNLE_EXPR);
33443 if (res) return res;
33444 }
33445 }
33446 switch (TREE_CODE (op0))
33447 {
33448 case NEGATE_EXPR:
33449 {
33450 tree o20 = TREE_OPERAND (op0, 0);
33451 switch (TREE_CODE (op1))
33452 {
33453 case NEGATE_EXPR:
33454 {
33455 tree o40 = TREE_OPERAND (op1, 0);
33456 {
33457/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33458 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33459 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNLE_EXPR, UNGE_EXPR);
33460 if (res) return res;
33461 }
33462 break;
33463 }
33464 default:;
33465 }
33466 if (CONSTANT_CLASS_P (op1))
33467 {
33468 {
33469/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33470 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33471 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNLE_EXPR, UNGE_EXPR);
33472 if (res) return res;
33473 }
33474 }
33475 break;
33476 }
33477 default:;
33478 }
33479 switch (TREE_CODE (op1))
33480 {
33481 case REAL_CST:
33482 {
33483 {
33484/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33485 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33486 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNLE_EXPR);
33487 if (res) return res;
33488 }
33489 break;
33490 }
33491 default:;
33492 }
33493 return NULL_TREE;
33494}
33495
33496static tree
33497generic_simplify_UNGE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33498{
33499 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33500 {
33501 {
33502/* #line 2356 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33503 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33504 tree res = generic_simplify_141 (loc, type, op0, op1, captures, UNGE_EXPR);
33505 if (res) return res;
33506 }
33507 }
33508 switch (TREE_CODE (op0))
33509 {
33510 case NEGATE_EXPR:
33511 {
33512 tree o20 = TREE_OPERAND (op0, 0);
33513 switch (TREE_CODE (op1))
33514 {
33515 case NEGATE_EXPR:
33516 {
33517 tree o40 = TREE_OPERAND (op1, 0);
33518 {
33519/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33520 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33521 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNGE_EXPR, UNLE_EXPR);
33522 if (res) return res;
33523 }
33524 break;
33525 }
33526 default:;
33527 }
33528 if (CONSTANT_CLASS_P (op1))
33529 {
33530 {
33531/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33532 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33533 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNGE_EXPR, UNLE_EXPR);
33534 if (res) return res;
33535 }
33536 }
33537 break;
33538 }
33539 default:;
33540 }
33541 switch (TREE_CODE (op1))
33542 {
33543 case REAL_CST:
33544 {
33545 {
33546/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33547 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33548 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNGE_EXPR);
33549 if (res) return res;
33550 }
33551 break;
33552 }
33553 default:;
33554 }
33555 return NULL_TREE;
33556}
33557
33558static tree
33559generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33560{
33561 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33562 {
33563 {
33564/* #line 2356 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33565 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33566 tree res = generic_simplify_141 (loc, type, op0, op1, captures, UNEQ_EXPR);
33567 if (res) return res;
33568 }
33569 }
33570 switch (TREE_CODE (op0))
33571 {
33572 case NEGATE_EXPR:
33573 {
33574 tree o20 = TREE_OPERAND (op0, 0);
33575 switch (TREE_CODE (op1))
33576 {
33577 case NEGATE_EXPR:
33578 {
33579 tree o40 = TREE_OPERAND (op1, 0);
33580 {
33581/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33582 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33583 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNEQ_EXPR, UNEQ_EXPR);
33584 if (res) return res;
33585 }
33586 break;
33587 }
33588 default:;
33589 }
33590 if (CONSTANT_CLASS_P (op1))
33591 {
33592 {
33593/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33594 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33595 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNEQ_EXPR, UNEQ_EXPR);
33596 if (res) return res;
33597 }
33598 }
33599 break;
33600 }
33601 default:;
33602 }
33603 switch (TREE_CODE (op1))
33604 {
33605 case REAL_CST:
33606 {
33607 {
33608/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33609 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33610 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNEQ_EXPR);
33611 if (res) return res;
33612 }
33613 break;
33614 }
33615 default:;
33616 }
33617 return NULL_TREE;
33618}
33619
33620static tree
33621generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33622{
33623 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33624 {
33625 {
33626/* #line 2360 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33627 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33628 tree res = generic_simplify_197 (loc, type, op0, op1, captures, UNLT_EXPR);
33629 if (res) return res;
33630 }
33631 }
33632 switch (TREE_CODE (op0))
33633 {
33634 case NEGATE_EXPR:
33635 {
33636 tree o20 = TREE_OPERAND (op0, 0);
33637 switch (TREE_CODE (op1))
33638 {
33639 case NEGATE_EXPR:
33640 {
33641 tree o40 = TREE_OPERAND (op1, 0);
33642 {
33643/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33644 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33645 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNLT_EXPR, UNGT_EXPR);
33646 if (res) return res;
33647 }
33648 break;
33649 }
33650 default:;
33651 }
33652 if (CONSTANT_CLASS_P (op1))
33653 {
33654 {
33655/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33656 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33657 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNLT_EXPR, UNGT_EXPR);
33658 if (res) return res;
33659 }
33660 }
33661 break;
33662 }
33663 default:;
33664 }
33665 switch (TREE_CODE (op1))
33666 {
33667 case REAL_CST:
33668 {
33669 {
33670/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33671 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33672 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNLT_EXPR);
33673 if (res) return res;
33674 }
33675 break;
33676 }
33677 default:;
33678 }
33679 return NULL_TREE;
33680}
33681
33682static tree
33683generic_simplify_UNGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33684{
33685 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33686 {
33687 {
33688/* #line 2360 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33689 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33690 tree res = generic_simplify_197 (loc, type, op0, op1, captures, UNGT_EXPR);
33691 if (res) return res;
33692 }
33693 }
33694 switch (TREE_CODE (op0))
33695 {
33696 case NEGATE_EXPR:
33697 {
33698 tree o20 = TREE_OPERAND (op0, 0);
33699 switch (TREE_CODE (op1))
33700 {
33701 case NEGATE_EXPR:
33702 {
33703 tree o40 = TREE_OPERAND (op1, 0);
33704 {
33705/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33706 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33707 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNGT_EXPR, UNLT_EXPR);
33708 if (res) return res;
33709 }
33710 break;
33711 }
33712 default:;
33713 }
33714 if (CONSTANT_CLASS_P (op1))
33715 {
33716 {
33717/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33718 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33719 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNGT_EXPR, UNLT_EXPR);
33720 if (res) return res;
33721 }
33722 }
33723 break;
33724 }
33725 default:;
33726 }
33727 switch (TREE_CODE (op1))
33728 {
33729 case REAL_CST:
33730 {
33731 {
33732/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33733 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33734 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNGT_EXPR);
33735 if (res) return res;
33736 }
33737 break;
33738 }
33739 default:;
33740 }
33741 return NULL_TREE;
33742}
33743
33744static tree
33745generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33746{
33747 if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
33748 {
33749 {
33750/* #line 2363 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33751 tree captures[1] ATTRIBUTE_UNUSED = { op0 };
33752/* #line 2363 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33753 if (!flag_trapping_math)
33754 {
33755 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2364, %s:%d\n", __FILE__, __LINE__);
33756 tree res;
33757 res = constant_boolean_node (false, type);
33758 if (TREE_SIDE_EFFECTS (captures[0]))
33759 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
33760 return res;
33761 }
33762 }
33763 }
33764 switch (TREE_CODE (op0))
33765 {
33766 case NEGATE_EXPR:
33767 {
33768 tree o20 = TREE_OPERAND (op0, 0);
33769 switch (TREE_CODE (op1))
33770 {
33771 case NEGATE_EXPR:
33772 {
33773 tree o40 = TREE_OPERAND (op1, 0);
33774 {
33775/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33776 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33777 tree res = generic_simplify_52 (loc, type, op0, op1, captures, LTGT_EXPR, LTGT_EXPR);
33778 if (res) return res;
33779 }
33780 break;
33781 }
33782 default:;
33783 }
33784 if (CONSTANT_CLASS_P (op1))
33785 {
33786 {
33787/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33788 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33789 tree res = generic_simplify_145 (loc, type, op0, op1, captures, LTGT_EXPR, LTGT_EXPR);
33790 if (res) return res;
33791 }
33792 }
33793 break;
33794 }
33795 default:;
33796 }
33797 switch (TREE_CODE (op1))
33798 {
33799 case REAL_CST:
33800 {
33801 {
33802/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33803 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33804 tree res = generic_simplify_173 (loc, type, op0, op1, captures, LTGT_EXPR);
33805 if (res) return res;
33806 }
33807 break;
33808 }
33809 default:;
33810 }
33811 return NULL_TREE;
33812}
33813
33814static tree
33815generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33816{
33817 switch (TREE_CODE (op0))
33818 {
33819 case NEGATE_EXPR:
33820 {
33821 tree o20 = TREE_OPERAND (op0, 0);
33822 switch (TREE_CODE (op1))
33823 {
33824 case NEGATE_EXPR:
33825 {
33826 tree o40 = TREE_OPERAND (op1, 0);
33827 {
33828/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33829 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33830 tree res = generic_simplify_52 (loc, type, op0, op1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
33831 if (res) return res;
33832 }
33833 break;
33834 }
33835 default:;
33836 }
33837 if (CONSTANT_CLASS_P (op1))
33838 {
33839 {
33840/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33841 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33842 tree res = generic_simplify_145 (loc, type, op0, op1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
33843 if (res) return res;
33844 }
33845 }
33846 break;
33847 }
33848 default:;
33849 }
33850 switch (TREE_CODE (op1))
33851 {
33852 case REAL_CST:
33853 {
33854 {
33855/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33856 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33857 tree res = generic_simplify_173 (loc, type, op0, op1, captures, UNORDERED_EXPR);
33858 if (res) return res;
33859 }
33860 break;
33861 }
33862 default:;
33863 }
33864 return NULL_TREE;
33865}
33866
33867static tree
33868generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1)
33869{
33870 switch (TREE_CODE (op0))
33871 {
33872 case NEGATE_EXPR:
33873 {
33874 tree o20 = TREE_OPERAND (op0, 0);
33875 switch (TREE_CODE (op1))
33876 {
33877 case NEGATE_EXPR:
33878 {
33879 tree o40 = TREE_OPERAND (op1, 0);
33880 {
33881/* #line 2653 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33882 tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
33883 tree res = generic_simplify_52 (loc, type, op0, op1, captures, ORDERED_EXPR, ORDERED_EXPR);
33884 if (res) return res;
33885 }
33886 break;
33887 }
33888 default:;
33889 }
33890 if (CONSTANT_CLASS_P (op1))
33891 {
33892 {
33893/* #line 2659 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33894 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
33895 tree res = generic_simplify_145 (loc, type, op0, op1, captures, ORDERED_EXPR, ORDERED_EXPR);
33896 if (res) return res;
33897 }
33898 }
33899 break;
33900 }
33901 default:;
33902 }
33903 switch (TREE_CODE (op1))
33904 {
33905 case REAL_CST:
33906 {
33907 {
33908/* #line 3011 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
33909 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
33910 tree res = generic_simplify_173 (loc, type, op0, op1, captures, ORDERED_EXPR);
33911 if (res) return res;
33912 }
33913 break;
33914 }
33915 default:;
33916 }
33917 return NULL_TREE;
33918}
33919
33920tree
33921generic_simplify (location_t loc, enum tree_code code, tree type ATTRIBUTE_UNUSED, tree op0, tree op1)
33922{
33923 switch (code)
33924 {
33925 case PLUS_EXPR:
33926 return generic_simplify_PLUS_EXPR (loc, code, type, op0, op1);
33927 case POINTER_PLUS_EXPR:
33928 return generic_simplify_POINTER_PLUS_EXPR (loc, code, type, op0, op1);
33929 case MINUS_EXPR:
33930 return generic_simplify_MINUS_EXPR (loc, code, type, op0, op1);
33931 case BIT_IOR_EXPR:
33932 return generic_simplify_BIT_IOR_EXPR (loc, code, type, op0, op1);
33933 case BIT_XOR_EXPR:
33934 return generic_simplify_BIT_XOR_EXPR (loc, code, type, op0, op1);
33935 case MULT_EXPR:
33936 return generic_simplify_MULT_EXPR (loc, code, type, op0, op1);
33937 case TRUNC_DIV_EXPR:
33938 return generic_simplify_TRUNC_DIV_EXPR (loc, code, type, op0, op1);
33939 case CEIL_DIV_EXPR:
33940 return generic_simplify_CEIL_DIV_EXPR (loc, code, type, op0, op1);
33941 case FLOOR_DIV_EXPR:
33942 return generic_simplify_FLOOR_DIV_EXPR (loc, code, type, op0, op1);
33943 case ROUND_DIV_EXPR:
33944 return generic_simplify_ROUND_DIV_EXPR (loc, code, type, op0, op1);
33945 case EXACT_DIV_EXPR:
33946 return generic_simplify_EXACT_DIV_EXPR (loc, code, type, op0, op1);
33947 case RDIV_EXPR:
33948 return generic_simplify_RDIV_EXPR (loc, code, type, op0, op1);
33949 case CEIL_MOD_EXPR:
33950 return generic_simplify_CEIL_MOD_EXPR (loc, code, type, op0, op1);
33951 case FLOOR_MOD_EXPR:
33952 return generic_simplify_FLOOR_MOD_EXPR (loc, code, type, op0, op1);
33953 case ROUND_MOD_EXPR:
33954 return generic_simplify_ROUND_MOD_EXPR (loc, code, type, op0, op1);
33955 case TRUNC_MOD_EXPR:
33956 return generic_simplify_TRUNC_MOD_EXPR (loc, code, type, op0, op1);
33957 case BIT_AND_EXPR:
33958 return generic_simplify_BIT_AND_EXPR (loc, code, type, op0, op1);
33959 case LT_EXPR:
33960 return generic_simplify_LT_EXPR (loc, code, type, op0, op1);
33961 case GE_EXPR:
33962 return generic_simplify_GE_EXPR (loc, code, type, op0, op1);
33963 case GT_EXPR:
33964 return generic_simplify_GT_EXPR (loc, code, type, op0, op1);
33965 case LE_EXPR:
33966 return generic_simplify_LE_EXPR (loc, code, type, op0, op1);
33967 case EQ_EXPR:
33968 return generic_simplify_EQ_EXPR (loc, code, type, op0, op1);
33969 case NE_EXPR:
33970 return generic_simplify_NE_EXPR (loc, code, type, op0, op1);
33971 case MIN_EXPR:
33972 return generic_simplify_MIN_EXPR (loc, code, type, op0, op1);
33973 case MAX_EXPR:
33974 return generic_simplify_MAX_EXPR (loc, code, type, op0, op1);
33975 case LROTATE_EXPR:
33976 return generic_simplify_LROTATE_EXPR (loc, code, type, op0, op1);
33977 case RROTATE_EXPR:
33978 return generic_simplify_RROTATE_EXPR (loc, code, type, op0, op1);
33979 case RSHIFT_EXPR:
33980 return generic_simplify_RSHIFT_EXPR (loc, code, type, op0, op1);
33981 case LSHIFT_EXPR:
33982 return generic_simplify_LSHIFT_EXPR (loc, code, type, op0, op1);
33983 case COMPLEX_EXPR:
33984 return generic_simplify_COMPLEX_EXPR (loc, code, type, op0, op1);
33985 case UNLE_EXPR:
33986 return generic_simplify_UNLE_EXPR (loc, code, type, op0, op1);
33987 case UNGE_EXPR:
33988 return generic_simplify_UNGE_EXPR (loc, code, type, op0, op1);
33989 case UNEQ_EXPR:
33990 return generic_simplify_UNEQ_EXPR (loc, code, type, op0, op1);
33991 case UNLT_EXPR:
33992 return generic_simplify_UNLT_EXPR (loc, code, type, op0, op1);
33993 case UNGT_EXPR:
33994 return generic_simplify_UNGT_EXPR (loc, code, type, op0, op1);
33995 case LTGT_EXPR:
33996 return generic_simplify_LTGT_EXPR (loc, code, type, op0, op1);
33997 case UNORDERED_EXPR:
33998 return generic_simplify_UNORDERED_EXPR (loc, code, type, op0, op1);
33999 case ORDERED_EXPR:
34000 return generic_simplify_ORDERED_EXPR (loc, code, type, op0, op1);
34001 default:;
34002 }
34003 return NULL_TREE;
34004}
34005
34006static tree
34007generic_simplify_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
34008{
34009 switch (TREE_CODE (op0))
34010 {
34011 case INTEGER_CST:
34012 {
34013 {
34014/* #line 1998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34015 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
34016/* #line 1998 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34017 if (integer_zerop (captures[0]))
34018 {
34019/* #line 1999 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34020 if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type))
34021 {
34022 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
34023 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
34024 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2000, %s:%d\n", __FILE__, __LINE__);
34025 tree res;
34026 res = captures[2];
34027 if (TREE_SIDE_EFFECTS (captures[0]))
34028 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
34029 return res;
34030 }
34031 }
34032 else
34033 {
34034/* #line 2001 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34035 if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type))
34036 {
34037 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
34038 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
34039 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2002, %s:%d\n", __FILE__, __LINE__);
34040 tree res;
34041 res = captures[1];
34042 if (TREE_SIDE_EFFECTS (captures[0]))
34043 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
34044 return res;
34045 }
34046 }
34047 }
34048 break;
34049 }
34050 case LT_EXPR:
34051 {
34052 tree o20 = TREE_OPERAND (op0, 0);
34053 tree o21 = TREE_OPERAND (op0, 1);
34054 switch (TREE_CODE (o20))
34055 {
34056 CASE_CONVERT:
34057 {
34058 tree o30 = TREE_OPERAND (o20, 0);
34059 switch (TREE_CODE (o21))
34060 {
34061 case INTEGER_CST:
34062 {
34063 switch (TREE_CODE (op1))
34064 {
34065 CASE_CONVERT:
34066 {
34067 tree o60 = TREE_OPERAND (op1, 0);
34068 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34069 {
34070 switch (TREE_CODE (op2))
34071 {
34072 case INTEGER_CST:
34073 {
34074 {
34075/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34076 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34077 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LT_EXPR);
34078 if (res) return res;
34079 }
34080 break;
34081 }
34082 default:;
34083 }
34084 }
34085 break;
34086 }
34087 default:;
34088 }
34089 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
34090 {
34091 switch (TREE_CODE (op2))
34092 {
34093 case INTEGER_CST:
34094 {
34095 {
34096/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34097 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34098 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LT_EXPR);
34099 if (res) return res;
34100 }
34101 break;
34102 }
34103 default:;
34104 }
34105 }
34106 break;
34107 }
34108 default:;
34109 }
34110 break;
34111 }
34112 default:;
34113 }
34114 switch (TREE_CODE (o21))
34115 {
34116 case INTEGER_CST:
34117 {
34118 switch (TREE_CODE (op1))
34119 {
34120 CASE_CONVERT:
34121 {
34122 tree o50 = TREE_OPERAND (op1, 0);
34123 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34124 {
34125 switch (TREE_CODE (op2))
34126 {
34127 case INTEGER_CST:
34128 {
34129 {
34130/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34131 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34132 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LT_EXPR);
34133 if (res) return res;
34134 }
34135 break;
34136 }
34137 default:;
34138 }
34139 }
34140 break;
34141 }
34142 default:;
34143 }
34144 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
34145 {
34146 switch (TREE_CODE (op2))
34147 {
34148 case INTEGER_CST:
34149 {
34150 {
34151/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34152 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34153 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LT_EXPR);
34154 if (res) return res;
34155 }
34156 break;
34157 }
34158 default:;
34159 }
34160 }
34161 break;
34162 }
34163 default:;
34164 }
34165 switch (TREE_CODE (o20))
34166 {
34167 CASE_CONVERT:
34168 {
34169 tree o30 = TREE_OPERAND (o20, 0);
34170 switch (TREE_CODE (o21))
34171 {
34172 case INTEGER_CST:
34173 {
34174 switch (TREE_CODE (op1))
34175 {
34176 case PLUS_EXPR:
34177 {
34178 tree o60 = TREE_OPERAND (op1, 0);
34179 tree o61 = TREE_OPERAND (op1, 1);
34180 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34181 {
34182 switch (TREE_CODE (o61))
34183 {
34184 case INTEGER_CST:
34185 {
34186 switch (TREE_CODE (op2))
34187 {
34188 case INTEGER_CST:
34189 {
34190 {
34191/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34192 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34193 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LT_EXPR, PLUS_EXPR);
34194 if (res) return res;
34195 }
34196 break;
34197 }
34198 default:;
34199 }
34200 break;
34201 }
34202 default:;
34203 }
34204 }
34205 break;
34206 }
34207 case MINUS_EXPR:
34208 {
34209 tree o60 = TREE_OPERAND (op1, 0);
34210 tree o61 = TREE_OPERAND (op1, 1);
34211 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34212 {
34213 switch (TREE_CODE (o61))
34214 {
34215 case INTEGER_CST:
34216 {
34217 switch (TREE_CODE (op2))
34218 {
34219 case INTEGER_CST:
34220 {
34221 {
34222/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34223 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34224 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LT_EXPR, MINUS_EXPR);
34225 if (res) return res;
34226 }
34227 break;
34228 }
34229 default:;
34230 }
34231 break;
34232 }
34233 default:;
34234 }
34235 }
34236 break;
34237 }
34238 default:;
34239 }
34240 break;
34241 }
34242 default:;
34243 }
34244 break;
34245 }
34246 default:;
34247 }
34248 switch (TREE_CODE (o21))
34249 {
34250 case INTEGER_CST:
34251 {
34252 switch (TREE_CODE (op1))
34253 {
34254 case PLUS_EXPR:
34255 {
34256 tree o50 = TREE_OPERAND (op1, 0);
34257 tree o51 = TREE_OPERAND (op1, 1);
34258 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34259 {
34260 switch (TREE_CODE (o51))
34261 {
34262 case INTEGER_CST:
34263 {
34264 switch (TREE_CODE (op2))
34265 {
34266 case INTEGER_CST:
34267 {
34268 {
34269/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34270 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34271 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LT_EXPR, PLUS_EXPR);
34272 if (res) return res;
34273 }
34274 break;
34275 }
34276 default:;
34277 }
34278 break;
34279 }
34280 default:;
34281 }
34282 }
34283 break;
34284 }
34285 case MINUS_EXPR:
34286 {
34287 tree o50 = TREE_OPERAND (op1, 0);
34288 tree o51 = TREE_OPERAND (op1, 1);
34289 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34290 {
34291 switch (TREE_CODE (o51))
34292 {
34293 case INTEGER_CST:
34294 {
34295 switch (TREE_CODE (op2))
34296 {
34297 case INTEGER_CST:
34298 {
34299 {
34300/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34301 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34302 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LT_EXPR, MINUS_EXPR);
34303 if (res) return res;
34304 }
34305 break;
34306 }
34307 default:;
34308 }
34309 break;
34310 }
34311 default:;
34312 }
34313 }
34314 break;
34315 }
34316 default:;
34317 }
34318 break;
34319 }
34320 default:;
34321 }
34322 break;
34323 }
34324 case LE_EXPR:
34325 {
34326 tree o20 = TREE_OPERAND (op0, 0);
34327 tree o21 = TREE_OPERAND (op0, 1);
34328 switch (TREE_CODE (o20))
34329 {
34330 CASE_CONVERT:
34331 {
34332 tree o30 = TREE_OPERAND (o20, 0);
34333 switch (TREE_CODE (o21))
34334 {
34335 case INTEGER_CST:
34336 {
34337 switch (TREE_CODE (op1))
34338 {
34339 CASE_CONVERT:
34340 {
34341 tree o60 = TREE_OPERAND (op1, 0);
34342 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34343 {
34344 switch (TREE_CODE (op2))
34345 {
34346 case INTEGER_CST:
34347 {
34348 {
34349/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34350 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34351 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LE_EXPR);
34352 if (res) return res;
34353 }
34354 break;
34355 }
34356 default:;
34357 }
34358 }
34359 break;
34360 }
34361 default:;
34362 }
34363 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
34364 {
34365 switch (TREE_CODE (op2))
34366 {
34367 case INTEGER_CST:
34368 {
34369 {
34370/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34371 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34372 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LE_EXPR);
34373 if (res) return res;
34374 }
34375 break;
34376 }
34377 default:;
34378 }
34379 }
34380 break;
34381 }
34382 default:;
34383 }
34384 break;
34385 }
34386 default:;
34387 }
34388 switch (TREE_CODE (o21))
34389 {
34390 case INTEGER_CST:
34391 {
34392 switch (TREE_CODE (op1))
34393 {
34394 CASE_CONVERT:
34395 {
34396 tree o50 = TREE_OPERAND (op1, 0);
34397 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34398 {
34399 switch (TREE_CODE (op2))
34400 {
34401 case INTEGER_CST:
34402 {
34403 {
34404/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34405 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34406 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LE_EXPR);
34407 if (res) return res;
34408 }
34409 break;
34410 }
34411 default:;
34412 }
34413 }
34414 break;
34415 }
34416 default:;
34417 }
34418 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
34419 {
34420 switch (TREE_CODE (op2))
34421 {
34422 case INTEGER_CST:
34423 {
34424 {
34425/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34426 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34427 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, LE_EXPR);
34428 if (res) return res;
34429 }
34430 break;
34431 }
34432 default:;
34433 }
34434 }
34435 break;
34436 }
34437 default:;
34438 }
34439 switch (TREE_CODE (o20))
34440 {
34441 CASE_CONVERT:
34442 {
34443 tree o30 = TREE_OPERAND (o20, 0);
34444 switch (TREE_CODE (o21))
34445 {
34446 case INTEGER_CST:
34447 {
34448 switch (TREE_CODE (op1))
34449 {
34450 case PLUS_EXPR:
34451 {
34452 tree o60 = TREE_OPERAND (op1, 0);
34453 tree o61 = TREE_OPERAND (op1, 1);
34454 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34455 {
34456 switch (TREE_CODE (o61))
34457 {
34458 case INTEGER_CST:
34459 {
34460 switch (TREE_CODE (op2))
34461 {
34462 case INTEGER_CST:
34463 {
34464 {
34465/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34466 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34467 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LE_EXPR, PLUS_EXPR);
34468 if (res) return res;
34469 }
34470 break;
34471 }
34472 default:;
34473 }
34474 break;
34475 }
34476 default:;
34477 }
34478 }
34479 break;
34480 }
34481 case MINUS_EXPR:
34482 {
34483 tree o60 = TREE_OPERAND (op1, 0);
34484 tree o61 = TREE_OPERAND (op1, 1);
34485 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34486 {
34487 switch (TREE_CODE (o61))
34488 {
34489 case INTEGER_CST:
34490 {
34491 switch (TREE_CODE (op2))
34492 {
34493 case INTEGER_CST:
34494 {
34495 {
34496/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34497 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34498 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LE_EXPR, MINUS_EXPR);
34499 if (res) return res;
34500 }
34501 break;
34502 }
34503 default:;
34504 }
34505 break;
34506 }
34507 default:;
34508 }
34509 }
34510 break;
34511 }
34512 default:;
34513 }
34514 break;
34515 }
34516 default:;
34517 }
34518 break;
34519 }
34520 default:;
34521 }
34522 switch (TREE_CODE (o21))
34523 {
34524 case INTEGER_CST:
34525 {
34526 switch (TREE_CODE (op1))
34527 {
34528 case PLUS_EXPR:
34529 {
34530 tree o50 = TREE_OPERAND (op1, 0);
34531 tree o51 = TREE_OPERAND (op1, 1);
34532 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34533 {
34534 switch (TREE_CODE (o51))
34535 {
34536 case INTEGER_CST:
34537 {
34538 switch (TREE_CODE (op2))
34539 {
34540 case INTEGER_CST:
34541 {
34542 {
34543/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34544 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34545 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LE_EXPR, PLUS_EXPR);
34546 if (res) return res;
34547 }
34548 break;
34549 }
34550 default:;
34551 }
34552 break;
34553 }
34554 default:;
34555 }
34556 }
34557 break;
34558 }
34559 case MINUS_EXPR:
34560 {
34561 tree o50 = TREE_OPERAND (op1, 0);
34562 tree o51 = TREE_OPERAND (op1, 1);
34563 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34564 {
34565 switch (TREE_CODE (o51))
34566 {
34567 case INTEGER_CST:
34568 {
34569 switch (TREE_CODE (op2))
34570 {
34571 case INTEGER_CST:
34572 {
34573 {
34574/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34575 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34576 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, LE_EXPR, MINUS_EXPR);
34577 if (res) return res;
34578 }
34579 break;
34580 }
34581 default:;
34582 }
34583 break;
34584 }
34585 default:;
34586 }
34587 }
34588 break;
34589 }
34590 default:;
34591 }
34592 break;
34593 }
34594 default:;
34595 }
34596 break;
34597 }
34598 case GT_EXPR:
34599 {
34600 tree o20 = TREE_OPERAND (op0, 0);
34601 tree o21 = TREE_OPERAND (op0, 1);
34602 switch (TREE_CODE (o20))
34603 {
34604 CASE_CONVERT:
34605 {
34606 tree o30 = TREE_OPERAND (o20, 0);
34607 switch (TREE_CODE (o21))
34608 {
34609 case INTEGER_CST:
34610 {
34611 switch (TREE_CODE (op1))
34612 {
34613 CASE_CONVERT:
34614 {
34615 tree o60 = TREE_OPERAND (op1, 0);
34616 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34617 {
34618 switch (TREE_CODE (op2))
34619 {
34620 case INTEGER_CST:
34621 {
34622 {
34623/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34624 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34625 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GT_EXPR);
34626 if (res) return res;
34627 }
34628 break;
34629 }
34630 default:;
34631 }
34632 }
34633 break;
34634 }
34635 default:;
34636 }
34637 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
34638 {
34639 switch (TREE_CODE (op2))
34640 {
34641 case INTEGER_CST:
34642 {
34643 {
34644/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34645 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34646 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GT_EXPR);
34647 if (res) return res;
34648 }
34649 break;
34650 }
34651 default:;
34652 }
34653 }
34654 break;
34655 }
34656 default:;
34657 }
34658 break;
34659 }
34660 default:;
34661 }
34662 switch (TREE_CODE (o21))
34663 {
34664 case INTEGER_CST:
34665 {
34666 switch (TREE_CODE (op1))
34667 {
34668 CASE_CONVERT:
34669 {
34670 tree o50 = TREE_OPERAND (op1, 0);
34671 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34672 {
34673 switch (TREE_CODE (op2))
34674 {
34675 case INTEGER_CST:
34676 {
34677 {
34678/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34679 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34680 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GT_EXPR);
34681 if (res) return res;
34682 }
34683 break;
34684 }
34685 default:;
34686 }
34687 }
34688 break;
34689 }
34690 default:;
34691 }
34692 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
34693 {
34694 switch (TREE_CODE (op2))
34695 {
34696 case INTEGER_CST:
34697 {
34698 {
34699/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34700 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34701 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GT_EXPR);
34702 if (res) return res;
34703 }
34704 break;
34705 }
34706 default:;
34707 }
34708 }
34709 break;
34710 }
34711 default:;
34712 }
34713 switch (TREE_CODE (o20))
34714 {
34715 CASE_CONVERT:
34716 {
34717 tree o30 = TREE_OPERAND (o20, 0);
34718 switch (TREE_CODE (o21))
34719 {
34720 case INTEGER_CST:
34721 {
34722 switch (TREE_CODE (op1))
34723 {
34724 case PLUS_EXPR:
34725 {
34726 tree o60 = TREE_OPERAND (op1, 0);
34727 tree o61 = TREE_OPERAND (op1, 1);
34728 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34729 {
34730 switch (TREE_CODE (o61))
34731 {
34732 case INTEGER_CST:
34733 {
34734 switch (TREE_CODE (op2))
34735 {
34736 case INTEGER_CST:
34737 {
34738 {
34739/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34740 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34741 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GT_EXPR, PLUS_EXPR);
34742 if (res) return res;
34743 }
34744 break;
34745 }
34746 default:;
34747 }
34748 break;
34749 }
34750 default:;
34751 }
34752 }
34753 break;
34754 }
34755 case MINUS_EXPR:
34756 {
34757 tree o60 = TREE_OPERAND (op1, 0);
34758 tree o61 = TREE_OPERAND (op1, 1);
34759 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34760 {
34761 switch (TREE_CODE (o61))
34762 {
34763 case INTEGER_CST:
34764 {
34765 switch (TREE_CODE (op2))
34766 {
34767 case INTEGER_CST:
34768 {
34769 {
34770/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34771 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
34772 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GT_EXPR, MINUS_EXPR);
34773 if (res) return res;
34774 }
34775 break;
34776 }
34777 default:;
34778 }
34779 break;
34780 }
34781 default:;
34782 }
34783 }
34784 break;
34785 }
34786 default:;
34787 }
34788 break;
34789 }
34790 default:;
34791 }
34792 break;
34793 }
34794 default:;
34795 }
34796 switch (TREE_CODE (o21))
34797 {
34798 case INTEGER_CST:
34799 {
34800 switch (TREE_CODE (op1))
34801 {
34802 case PLUS_EXPR:
34803 {
34804 tree o50 = TREE_OPERAND (op1, 0);
34805 tree o51 = TREE_OPERAND (op1, 1);
34806 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34807 {
34808 switch (TREE_CODE (o51))
34809 {
34810 case INTEGER_CST:
34811 {
34812 switch (TREE_CODE (op2))
34813 {
34814 case INTEGER_CST:
34815 {
34816 {
34817/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34818 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34819 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GT_EXPR, PLUS_EXPR);
34820 if (res) return res;
34821 }
34822 break;
34823 }
34824 default:;
34825 }
34826 break;
34827 }
34828 default:;
34829 }
34830 }
34831 break;
34832 }
34833 case MINUS_EXPR:
34834 {
34835 tree o50 = TREE_OPERAND (op1, 0);
34836 tree o51 = TREE_OPERAND (op1, 1);
34837 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34838 {
34839 switch (TREE_CODE (o51))
34840 {
34841 case INTEGER_CST:
34842 {
34843 switch (TREE_CODE (op2))
34844 {
34845 case INTEGER_CST:
34846 {
34847 {
34848/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34849 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
34850 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GT_EXPR, MINUS_EXPR);
34851 if (res) return res;
34852 }
34853 break;
34854 }
34855 default:;
34856 }
34857 break;
34858 }
34859 default:;
34860 }
34861 }
34862 break;
34863 }
34864 default:;
34865 }
34866 break;
34867 }
34868 default:;
34869 }
34870 break;
34871 }
34872 case GE_EXPR:
34873 {
34874 tree o20 = TREE_OPERAND (op0, 0);
34875 tree o21 = TREE_OPERAND (op0, 1);
34876 switch (TREE_CODE (o20))
34877 {
34878 CASE_CONVERT:
34879 {
34880 tree o30 = TREE_OPERAND (o20, 0);
34881 switch (TREE_CODE (o21))
34882 {
34883 case INTEGER_CST:
34884 {
34885 switch (TREE_CODE (op1))
34886 {
34887 CASE_CONVERT:
34888 {
34889 tree o60 = TREE_OPERAND (op1, 0);
34890 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
34891 {
34892 switch (TREE_CODE (op2))
34893 {
34894 case INTEGER_CST:
34895 {
34896 {
34897/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34898 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34899 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GE_EXPR);
34900 if (res) return res;
34901 }
34902 break;
34903 }
34904 default:;
34905 }
34906 }
34907 break;
34908 }
34909 default:;
34910 }
34911 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
34912 {
34913 switch (TREE_CODE (op2))
34914 {
34915 case INTEGER_CST:
34916 {
34917 {
34918/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34919 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
34920 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GE_EXPR);
34921 if (res) return res;
34922 }
34923 break;
34924 }
34925 default:;
34926 }
34927 }
34928 break;
34929 }
34930 default:;
34931 }
34932 break;
34933 }
34934 default:;
34935 }
34936 switch (TREE_CODE (o21))
34937 {
34938 case INTEGER_CST:
34939 {
34940 switch (TREE_CODE (op1))
34941 {
34942 CASE_CONVERT:
34943 {
34944 tree o50 = TREE_OPERAND (op1, 0);
34945 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
34946 {
34947 switch (TREE_CODE (op2))
34948 {
34949 case INTEGER_CST:
34950 {
34951 {
34952/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34953 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34954 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GE_EXPR);
34955 if (res) return res;
34956 }
34957 break;
34958 }
34959 default:;
34960 }
34961 }
34962 break;
34963 }
34964 default:;
34965 }
34966 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
34967 {
34968 switch (TREE_CODE (op2))
34969 {
34970 case INTEGER_CST:
34971 {
34972 {
34973/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
34974 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
34975 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, GE_EXPR);
34976 if (res) return res;
34977 }
34978 break;
34979 }
34980 default:;
34981 }
34982 }
34983 break;
34984 }
34985 default:;
34986 }
34987 switch (TREE_CODE (o20))
34988 {
34989 CASE_CONVERT:
34990 {
34991 tree o30 = TREE_OPERAND (o20, 0);
34992 switch (TREE_CODE (o21))
34993 {
34994 case INTEGER_CST:
34995 {
34996 switch (TREE_CODE (op1))
34997 {
34998 case PLUS_EXPR:
34999 {
35000 tree o60 = TREE_OPERAND (op1, 0);
35001 tree o61 = TREE_OPERAND (op1, 1);
35002 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
35003 {
35004 switch (TREE_CODE (o61))
35005 {
35006 case INTEGER_CST:
35007 {
35008 switch (TREE_CODE (op2))
35009 {
35010 case INTEGER_CST:
35011 {
35012 {
35013/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35014 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
35015 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GE_EXPR, PLUS_EXPR);
35016 if (res) return res;
35017 }
35018 break;
35019 }
35020 default:;
35021 }
35022 break;
35023 }
35024 default:;
35025 }
35026 }
35027 break;
35028 }
35029 case MINUS_EXPR:
35030 {
35031 tree o60 = TREE_OPERAND (op1, 0);
35032 tree o61 = TREE_OPERAND (op1, 1);
35033 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
35034 {
35035 switch (TREE_CODE (o61))
35036 {
35037 case INTEGER_CST:
35038 {
35039 switch (TREE_CODE (op2))
35040 {
35041 case INTEGER_CST:
35042 {
35043 {
35044/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35045 tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
35046 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GE_EXPR, MINUS_EXPR);
35047 if (res) return res;
35048 }
35049 break;
35050 }
35051 default:;
35052 }
35053 break;
35054 }
35055 default:;
35056 }
35057 }
35058 break;
35059 }
35060 default:;
35061 }
35062 break;
35063 }
35064 default:;
35065 }
35066 break;
35067 }
35068 default:;
35069 }
35070 switch (TREE_CODE (o21))
35071 {
35072 case INTEGER_CST:
35073 {
35074 switch (TREE_CODE (op1))
35075 {
35076 case PLUS_EXPR:
35077 {
35078 tree o50 = TREE_OPERAND (op1, 0);
35079 tree o51 = TREE_OPERAND (op1, 1);
35080 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
35081 {
35082 switch (TREE_CODE (o51))
35083 {
35084 case INTEGER_CST:
35085 {
35086 switch (TREE_CODE (op2))
35087 {
35088 case INTEGER_CST:
35089 {
35090 {
35091/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35092 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
35093 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GE_EXPR, PLUS_EXPR);
35094 if (res) return res;
35095 }
35096 break;
35097 }
35098 default:;
35099 }
35100 break;
35101 }
35102 default:;
35103 }
35104 }
35105 break;
35106 }
35107 case MINUS_EXPR:
35108 {
35109 tree o50 = TREE_OPERAND (op1, 0);
35110 tree o51 = TREE_OPERAND (op1, 1);
35111 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
35112 {
35113 switch (TREE_CODE (o51))
35114 {
35115 case INTEGER_CST:
35116 {
35117 switch (TREE_CODE (op2))
35118 {
35119 case INTEGER_CST:
35120 {
35121 {
35122/* #line 2112 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35123 tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
35124 tree res = generic_simplify_63 (loc, type, op0, op1, op2, captures, GE_EXPR, MINUS_EXPR);
35125 if (res) return res;
35126 }
35127 break;
35128 }
35129 default:;
35130 }
35131 break;
35132 }
35133 default:;
35134 }
35135 }
35136 break;
35137 }
35138 default:;
35139 }
35140 break;
35141 }
35142 default:;
35143 }
35144 break;
35145 }
35146 case EQ_EXPR:
35147 {
35148 tree o20 = TREE_OPERAND (op0, 0);
35149 tree o21 = TREE_OPERAND (op0, 1);
35150 switch (TREE_CODE (o20))
35151 {
35152 CASE_CONVERT:
35153 {
35154 tree o30 = TREE_OPERAND (o20, 0);
35155 switch (TREE_CODE (o21))
35156 {
35157 case INTEGER_CST:
35158 {
35159 switch (TREE_CODE (op1))
35160 {
35161 CASE_CONVERT:
35162 {
35163 tree o60 = TREE_OPERAND (op1, 0);
35164 if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
35165 {
35166 switch (TREE_CODE (op2))
35167 {
35168 case INTEGER_CST:
35169 {
35170 {
35171/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35172 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
35173 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, EQ_EXPR);
35174 if (res) return res;
35175 }
35176 break;
35177 }
35178 default:;
35179 }
35180 }
35181 break;
35182 }
35183 default:;
35184 }
35185 if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
35186 {
35187 switch (TREE_CODE (op2))
35188 {
35189 case INTEGER_CST:
35190 {
35191 {
35192/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35193 tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
35194 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, EQ_EXPR);
35195 if (res) return res;
35196 }
35197 break;
35198 }
35199 default:;
35200 }
35201 }
35202 break;
35203 }
35204 default:;
35205 }
35206 break;
35207 }
35208 default:;
35209 }
35210 switch (TREE_CODE (o21))
35211 {
35212 case INTEGER_CST:
35213 {
35214 switch (TREE_CODE (op1))
35215 {
35216 CASE_CONVERT:
35217 {
35218 tree o50 = TREE_OPERAND (op1, 0);
35219 if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
35220 {
35221 switch (TREE_CODE (op2))
35222 {
35223 case INTEGER_CST:
35224 {
35225 {
35226/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35227 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
35228 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, EQ_EXPR);
35229 if (res) return res;
35230 }
35231 break;
35232 }
35233 default:;
35234 }
35235 }
35236 break;
35237 }
35238 default:;
35239 }
35240 if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
35241 {
35242 switch (TREE_CODE (op2))
35243 {
35244 case INTEGER_CST:
35245 {
35246 {
35247/* #line 2029 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35248 tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
35249 tree res = generic_simplify_13 (loc, type, op0, op1, op2, captures, EQ_EXPR);
35250 if (res) return res;
35251 }
35252 break;
35253 }
35254 default:;
35255 }
35256 }
35257 break;
35258 }
35259 default:;
35260 }
35261 break;
35262 }
35263 default:;
35264 }
35265 switch (TREE_CODE (op1))
35266 {
35267 case COND_EXPR:
35268 {
35269 tree o30 = TREE_OPERAND (op1, 0);
35270 tree o31 = TREE_OPERAND (op1, 1);
35271 tree o32 = TREE_OPERAND (op1, 2);
35272 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
35273 {
35274 {
35275/* #line 2192 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35276 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
35277 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35278 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35279 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35280 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
35281 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2192, %s:%d\n", __FILE__, __LINE__);
35282 tree res_op0;
35283 res_op0 = captures[0];
35284 tree res_op1;
35285 res_op1 = captures[1];
35286 tree res_op2;
35287 res_op2 = captures[3];
35288 tree res;
35289 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
35290 return res;
35291 }
35292 }
35293 break;
35294 }
35295 default:;
35296 }
35297 switch (TREE_CODE (op2))
35298 {
35299 case COND_EXPR:
35300 {
35301 tree o40 = TREE_OPERAND (op2, 0);
35302 tree o41 = TREE_OPERAND (op2, 1);
35303 tree o42 = TREE_OPERAND (op2, 2);
35304 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
35305 {
35306 {
35307/* #line 2195 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35308 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
35309 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35310 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35311 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35312 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
35313 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2195, %s:%d\n", __FILE__, __LINE__);
35314 tree res_op0;
35315 res_op0 = captures[0];
35316 tree res_op1;
35317 res_op1 = captures[1];
35318 tree res_op2;
35319 res_op2 = captures[3];
35320 tree res;
35321 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
35322 return res;
35323 }
35324 }
35325 {
35326/* #line 2203 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35327 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
35328/* #line 2203 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35329 if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[2]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[2]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[2], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[2], 1), 0))
35330 {
35331 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35332 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35333 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
35334 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
35335 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2209, %s:%d\n", __FILE__, __LINE__);
35336 tree res_op0;
35337 res_op0 = captures[0];
35338 tree res_op1;
35339 res_op1 = captures[1];
35340 tree res_op2;
35341 res_op2 = captures[3];
35342 tree res;
35343 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
35344 return res;
35345 }
35346 }
35347 break;
35348 }
35349 default:;
35350 }
35351 switch (TREE_CODE (op1))
35352 {
35353 case COND_EXPR:
35354 {
35355 tree o30 = TREE_OPERAND (op1, 0);
35356 tree o31 = TREE_OPERAND (op1, 1);
35357 tree o32 = TREE_OPERAND (op1, 2);
35358 {
35359/* #line 2212 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35360 tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
35361/* #line 2212 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35362 if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[1]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[1]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[1], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[1], 1), 0))
35363 {
35364 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35365 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35366 if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
35367 if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
35368 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2218, %s:%d\n", __FILE__, __LINE__);
35369 tree res_op0;
35370 res_op0 = captures[0];
35371 tree res_op1;
35372 res_op1 = captures[3];
35373 tree res_op2;
35374 res_op2 = captures[4];
35375 tree res;
35376 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
35377 return res;
35378 }
35379 }
35380 break;
35381 }
35382 default:;
35383 }
35384 if (op2 == op1 || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
35385 {
35386 {
35387/* #line 2223 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35388 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
35389 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35390 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2223, %s:%d\n", __FILE__, __LINE__);
35391 tree res;
35392 res = captures[1];
35393 if (TREE_SIDE_EFFECTS (captures[0]))
35394 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
35395 return res;
35396 }
35397 }
35398 switch (TREE_CODE (op0))
35399 {
35400 case NE_EXPR:
35401 {
35402 tree o20 = TREE_OPERAND (op0, 0);
35403 tree o21 = TREE_OPERAND (op0, 1);
35404 switch (TREE_CODE (o20))
35405 {
35406 case BIT_AND_EXPR:
35407 {
35408 tree o30 = TREE_OPERAND (o20, 0);
35409 tree o31 = TREE_OPERAND (o20, 1);
35410 if (integer_pow2p (o31))
35411 {
35412 if (integer_zerop (o21))
35413 {
35414 switch (TREE_CODE (op1))
35415 {
35416 case INTEGER_CST:
35417 {
35418 if (integer_zerop (op2))
35419 {
35420 {
35421/* #line 2793 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35422 tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
35423/* #line 2793 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35424 if (integer_pow2p (captures[2]))
35425 {
35426 {
35427/* #line 2794 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35428 int shift = wi::exact_log2 (captures[2]) - wi::exact_log2 (captures[1]);
35429/* #line 2797 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35430 if (shift > 0)
35431 {
35432 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
35433 if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
35434 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35435 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2798, %s:%d\n", __FILE__, __LINE__);
35436 tree res_op0;
35437 {
35438 tree ops1[2], res;
35439 {
35440 tree ops2[1], res;
35441 ops2[0] = captures[0];
35442 if (TREE_TYPE (ops2[0]) != type)
35443 res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
35444 else
35445 res = ops2[0];
35446 ops1[0] = res;
35447 }
35448 ops1[1] = build_int_cst (integer_type_node, shift);
35449 res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
35450 res_op0 = res;
35451 }
35452 tree res_op1;
35453 res_op1 = captures[2];
35454 tree res;
35455 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
35456 return res;
35457 }
35458 else
35459 {
35460 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
35461 if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
35462 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35463 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2800, %s:%d\n", __FILE__, __LINE__);
35464 tree res_op0;
35465 {
35466 tree ops1[1], res;
35467 {
35468 tree ops2[2], res;
35469 ops2[0] = captures[0];
35470 ops2[1] = build_int_cst (integer_type_node, -shift);
35471 res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
35472 ops1[0] = res;
35473 }
35474 if (TREE_TYPE (ops1[0]) != type)
35475 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
35476 else
35477 res = ops1[0];
35478 res_op0 = res;
35479 }
35480 tree res_op1;
35481 res_op1 = captures[2];
35482 tree res;
35483 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
35484 return res;
35485 }
35486 }
35487 }
35488 }
35489 }
35490 break;
35491 }
35492 default:;
35493 }
35494 }
35495 }
35496 break;
35497 }
35498 default:;
35499 }
35500 break;
35501 }
35502 case LT_EXPR:
35503 {
35504 tree o20 = TREE_OPERAND (op0, 0);
35505 tree o21 = TREE_OPERAND (op0, 1);
35506 if (integer_zerop (o21))
35507 {
35508 switch (TREE_CODE (op1))
35509 {
35510 case INTEGER_CST:
35511 {
35512 if (integer_zerop (op2))
35513 {
35514 {
35515/* #line 2824 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35516 tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
35517/* #line 2824 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35518 if (integer_pow2p (captures[1]) && !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
35519 {
35520 {
35521/* #line 2826 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35522 int shift = element_precision (captures[0]) - wi::exact_log2 (captures[1]) - 1;
35523/* #line 2829 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35524 if (shift >= 0)
35525 {
35526 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
35527 if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
35528 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35529 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2830, %s:%d\n", __FILE__, __LINE__);
35530 tree res_op0;
35531 {
35532 tree ops1[1], res;
35533 {
35534 tree ops2[2], res;
35535 ops2[0] = captures[0];
35536 ops2[1] = build_int_cst (integer_type_node, shift);
35537 res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
35538 ops1[0] = res;
35539 }
35540 if (TREE_TYPE (ops1[0]) != type)
35541 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
35542 else
35543 res = ops1[0];
35544 res_op0 = res;
35545 }
35546 tree res_op1;
35547 res_op1 = captures[1];
35548 tree res;
35549 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
35550 return res;
35551 }
35552 else
35553 {
35554 if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
35555 if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
35556 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35557 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2835, %s:%d\n", __FILE__, __LINE__);
35558 tree res_op0;
35559 {
35560 tree ops1[1], res;
35561 ops1[0] = captures[0];
35562 if (TREE_TYPE (ops1[0]) != type)
35563 res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
35564 else
35565 res = ops1[0];
35566 res_op0 = res;
35567 }
35568 tree res_op1;
35569 res_op1 = captures[1];
35570 tree res;
35571 res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
35572 return res;
35573 }
35574 }
35575 }
35576 }
35577 }
35578 break;
35579 }
35580 default:;
35581 }
35582 }
35583 break;
35584 }
35585 default:;
35586 }
35587tree op0_pops[1];
35588if (tree_logical_inverted_value (op0, op0_pops))
35589 {
35590 tree o20 = op0_pops[0];
35591 if (tree_truth_valued_p (o20))
35592 {
35593 {
35594/* #line 2228 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35595 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
35596 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35597 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35598 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2228, %s:%d\n", __FILE__, __LINE__);
35599 tree res_op0;
35600 res_op0 = captures[0];
35601 tree res_op1;
35602 res_op1 = captures[2];
35603 tree res_op2;
35604 res_op2 = captures[1];
35605 tree res;
35606 res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
35607 return res;
35608 }
35609 }
35610}
35611 return NULL_TREE;
35612}
35613
35614static tree
35615generic_simplify_VEC_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
35616{
35617 switch (TREE_CODE (op0))
35618 {
35619 case VECTOR_CST:
35620 {
35621 {
35622/* #line 2005 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35623 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
35624/* #line 2005 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35625 if (integer_all_onesp (captures[0]))
35626 {
35627 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2006, %s:%d\n", __FILE__, __LINE__);
35628 tree res;
35629 res = captures[1];
35630 if (TREE_SIDE_EFFECTS (captures[0]))
35631 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
35632 if (TREE_SIDE_EFFECTS (captures[2]))
35633 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35634 return res;
35635 }
35636 else
35637 {
35638/* #line 2007 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35639 if (integer_zerop (captures[0]))
35640 {
35641 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2008, %s:%d\n", __FILE__, __LINE__);
35642 tree res;
35643 res = captures[2];
35644 if (TREE_SIDE_EFFECTS (captures[0]))
35645 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
35646 if (TREE_SIDE_EFFECTS (captures[1]))
35647 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
35648 return res;
35649 }
35650 }
35651 }
35652 break;
35653 }
35654 default:;
35655 }
35656 switch (TREE_CODE (op1))
35657 {
35658 case VEC_COND_EXPR:
35659 {
35660 tree o30 = TREE_OPERAND (op1, 0);
35661 tree o31 = TREE_OPERAND (op1, 1);
35662 tree o32 = TREE_OPERAND (op1, 2);
35663 if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
35664 {
35665 {
35666/* #line 2192 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35667 tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
35668 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2192, %s:%d\n", __FILE__, __LINE__);
35669 tree res_op0;
35670 res_op0 = captures[0];
35671 tree res_op1;
35672 res_op1 = captures[1];
35673 tree res_op2;
35674 res_op2 = captures[3];
35675 tree res;
35676 res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
35677 if (TREE_SIDE_EFFECTS (captures[2]))
35678 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35679 return res;
35680 }
35681 }
35682 break;
35683 }
35684 default:;
35685 }
35686 switch (TREE_CODE (op2))
35687 {
35688 case VEC_COND_EXPR:
35689 {
35690 tree o40 = TREE_OPERAND (op2, 0);
35691 tree o41 = TREE_OPERAND (op2, 1);
35692 tree o42 = TREE_OPERAND (op2, 2);
35693 if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
35694 {
35695 {
35696/* #line 2195 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35697 tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
35698 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2195, %s:%d\n", __FILE__, __LINE__);
35699 tree res_op0;
35700 res_op0 = captures[0];
35701 tree res_op1;
35702 res_op1 = captures[1];
35703 tree res_op2;
35704 res_op2 = captures[3];
35705 tree res;
35706 res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
35707 if (TREE_SIDE_EFFECTS (captures[2]))
35708 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35709 return res;
35710 }
35711 }
35712 {
35713/* #line 2203 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35714 tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
35715/* #line 2203 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35716 if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[2]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[2]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[2], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[2], 1), 0))
35717 {
35718 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2209, %s:%d\n", __FILE__, __LINE__);
35719 tree res_op0;
35720 res_op0 = captures[0];
35721 tree res_op1;
35722 res_op1 = captures[1];
35723 tree res_op2;
35724 res_op2 = captures[3];
35725 tree res;
35726 res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
35727 if (TREE_SIDE_EFFECTS (captures[2]))
35728 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35729 if (TREE_SIDE_EFFECTS (captures[4]))
35730 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), res);
35731 return res;
35732 }
35733 }
35734 break;
35735 }
35736 default:;
35737 }
35738 switch (TREE_CODE (op1))
35739 {
35740 case VEC_COND_EXPR:
35741 {
35742 tree o30 = TREE_OPERAND (op1, 0);
35743 tree o31 = TREE_OPERAND (op1, 1);
35744 tree o32 = TREE_OPERAND (op1, 2);
35745 {
35746/* #line 2212 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35747 tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
35748/* #line 2212 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35749 if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[1]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[1]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[1], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[1], 1), 0))
35750 {
35751 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2218, %s:%d\n", __FILE__, __LINE__);
35752 tree res_op0;
35753 res_op0 = captures[0];
35754 tree res_op1;
35755 res_op1 = captures[3];
35756 tree res_op2;
35757 res_op2 = captures[4];
35758 tree res;
35759 res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
35760 if (TREE_SIDE_EFFECTS (captures[1]))
35761 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
35762 if (TREE_SIDE_EFFECTS (captures[2]))
35763 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35764 return res;
35765 }
35766 }
35767 break;
35768 }
35769 default:;
35770 }
35771 if (op2 == op1 || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
35772 {
35773 {
35774/* #line 2223 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35775 tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
35776 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2223, %s:%d\n", __FILE__, __LINE__);
35777 tree res;
35778 res = captures[1];
35779 if (TREE_SIDE_EFFECTS (captures[0]))
35780 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
35781 return res;
35782 }
35783 }
35784 tree op0_pops[1];
35785 if (tree_logical_inverted_value (op0, op0_pops))
35786 {
35787 tree o20 = op0_pops[0];
35788 if (tree_truth_valued_p (o20))
35789 {
35790 {
35791/* #line 2228 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35792 tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
35793 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2228, %s:%d\n", __FILE__, __LINE__);
35794 tree res_op0;
35795 res_op0 = captures[0];
35796 tree res_op1;
35797 res_op1 = captures[2];
35798 tree res_op2;
35799 res_op2 = captures[1];
35800 tree res;
35801 res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
35802 return res;
35803 }
35804 }
35805}
35806 return NULL_TREE;
35807}
35808
35809static tree
35810generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
35811{
35812 {
35813/* #line 3749 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35814 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
35815/* #line 3749 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35816 if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
35817 {
35818/* #line 3752 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35819 if (integer_zerop (captures[2]))
35820 {
35821 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3753, %s:%d\n", __FILE__, __LINE__);
35822 tree res_op0;
35823 {
35824 tree ops1[1], res;
35825 ops1[0] = captures[0];
35826 res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
35827 res_op0 = res;
35828 }
35829 tree res;
35830 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
35831 if (TREE_SIDE_EFFECTS (captures[1]))
35832 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
35833 if (TREE_SIDE_EFFECTS (captures[2]))
35834 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35835 return res;
35836 }
35837 else
35838 {
35839/* #line 3754 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35840 if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
35841 {
35842 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3755, %s:%d\n", __FILE__, __LINE__);
35843 tree res_op0;
35844 {
35845 tree ops1[1], res;
35846 ops1[0] = captures[0];
35847 res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
35848 res_op0 = res;
35849 }
35850 tree res;
35851 res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
35852 if (TREE_SIDE_EFFECTS (captures[1]))
35853 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
35854 if (TREE_SIDE_EFFECTS (captures[2]))
35855 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35856 return res;
35857 }
35858 }
35859 }
35860 else
35861 {
35862/* #line 3756 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35863 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (type) && (!0 || is_gimple_reg (captures[0])) && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0 && integer_zerop (captures[2])) || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0 && TYPE_PRECISION (type) % BITS_PER_UNIT == 0 && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN ? (TYPE_PRECISION (TREE_TYPE (captures[0])) - TYPE_PRECISION (type)) : 0)) == 0)))
35864 {
35865 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3773, %s:%d\n", __FILE__, __LINE__);
35866 tree res_op0;
35867 res_op0 = captures[0];
35868 tree res;
35869 res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
35870 if (TREE_SIDE_EFFECTS (captures[1]))
35871 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
35872 if (TREE_SIDE_EFFECTS (captures[2]))
35873 res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
35874 return res;
35875 }
35876 }
35877 }
35878 switch (TREE_CODE (op0))
35879 {
35880 case CONSTRUCTOR:
35881 {
35882 {
35883/* #line 3779 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35884 tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
35885/* #line 3779 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35886 if (VECTOR_TYPE_P (TREE_TYPE (captures[0])) && (types_match (type, TREE_TYPE (TREE_TYPE (captures[0]))) || (VECTOR_TYPE_P (type) && types_match (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0]))))))
35887 {
35888 {
35889/* #line 3783 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35890 tree ctor = (TREE_CODE (captures[0]) == SSA_NAME ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
35891 tree eltype = TREE_TYPE (TREE_TYPE (ctor));
35892 unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
35893 unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
35894 unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
35895/* #line 3792 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35896 if (n != 0 && (idx % width) == 0 && (n % width) == 0 && ((idx + n) / width) <= TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
35897 {
35898 {
35899/* #line 3796 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35900 idx = idx / width;
35901 n = n / width;
35902 unsigned HOST_WIDE_INT k = 1;
35903 if (CONSTRUCTOR_NELTS (ctor) != 0) { tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
35904 if (TREE_CODE (cons_elem) == VECTOR_TYPE) k = TYPE_VECTOR_SUBPARTS (cons_elem);
35905 }/* #line 3811 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35906 if ((idx % k) == 0 && (n % k) == 0)
35907 {
35908/* #line 3812 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35909 if (CONSTRUCTOR_NELTS (ctor) == 0)
35910 {
35911 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35912 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35913 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35914 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3813, %s:%d\n", __FILE__, __LINE__);
35915 tree res;
35916 res = build_constructor (type, NULL);
35917 return res;
35918 }
35919 else
35920 {
35921 {
35922/* #line 3814 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35923 idx /= k;
35924 n /= k;
35925/* #line 3819 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35926 if (n == 1)
35927 {
35928/* #line 3820 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35929 if (idx < CONSTRUCTOR_NELTS (ctor))
35930 {
35931 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35932 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35933 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35934 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3821, %s:%d\n", __FILE__, __LINE__);
35935 tree res;
35936 res = CONSTRUCTOR_ELT (ctor, idx)->value;
35937 return res;
35938 }
35939 else
35940 {
35941 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35942 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35943 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35944 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3822, %s:%d\n", __FILE__, __LINE__);
35945 tree res;
35946 res = build_zero_cst (type);
35947 return res;
35948 }
35949 }
35950 else
35951 {
35952 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35953 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35954 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35955 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3823, %s:%d\n", __FILE__, __LINE__);
35956 tree res;
35957 vec<constructor_elt, va_gc> *vals;
35958 vec_alloc (vals, n);
35959 for (unsigned i = 0;
35960 i < n && idx + i < CONSTRUCTOR_NELTS (ctor);
35961 ++i) CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, CONSTRUCTOR_ELT (ctor, idx + i)->value);
35962 res = build_constructor (type, vals);
35963 return res;
35964 }
35965 }
35966 }
35967 }
35968 else
35969 {
35970/* #line 3833 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35971 if (idx + n <= (idx / k + 1) * k)
35972 {
35973/* #line 3835 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35974 if (CONSTRUCTOR_NELTS (ctor) <= idx / k)
35975 {
35976 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35977 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35978 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35979 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3836, %s:%d\n", __FILE__, __LINE__);
35980 tree res;
35981 res = build_zero_cst (type);
35982 return res;
35983 }
35984 else
35985 {
35986/* #line 3837 "/___NETBSD_SRC___/tools/gcc/../../external/gpl3/gcc/dist/gcc/match.pd" */
35987 if (n == k)
35988 {
35989 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
35990 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
35991 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
35992 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3838, %s:%d\n", __FILE__, __LINE__);
35993 tree res;
35994 res = CONSTRUCTOR_ELT (ctor, idx / k)->value;
35995 return res;
35996 }
35997 else
35998 {
35999 if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
36000 if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
36001 if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
36002 if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3839, %s:%d\n", __FILE__, __LINE__);
36003 tree res_op0;
36004 res_op0 = CONSTRUCTOR_ELT (ctor, idx / k)->value;
36005 tree res_op1;
36006 res_op1 = captures[1];
36007 tree res_op2;
36008 res_op2 = bitsize_int ((idx % k) * width);
36009 tree res;
36010 res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
36011 return res;
36012 }
36013 }
36014 }
36015 }
36016 }
36017 }
36018 }
36019 }
36020 }
36021 break;
36022 }
36023 default:;
36024 }
36025 return NULL_TREE;
36026}
36027
36028tree
36029generic_simplify (location_t loc, enum tree_code code, tree type ATTRIBUTE_UNUSED, tree op0, tree op1, tree op2)
36030{
36031 switch (code)
36032 {
36033 case COND_EXPR:
36034 return generic_simplify_COND_EXPR (loc, code, type, op0, op1, op2);
36035 case VEC_COND_EXPR:
36036 return generic_simplify_VEC_COND_EXPR (loc, code, type, op0, op1, op2);
36037 case BIT_FIELD_REF:
36038 return generic_simplify_BIT_FIELD_REF (loc, code, type, op0, op1, op2);
36039 default:;
36040 }
36041 return NULL_TREE;
36042}
36043